回答編集履歴

2 とりけしせん

m.ts10806

m.ts10806 score 36880

2018/02/16 11:27  投稿

惜しいところまでいってますね。
ひとまず、move_uploaded_file()の第2引数はファイル名も含める必要がありますので、
任意の名前をつけると良いです。
例:
```php
// ファイルの保存先
$uploadfile = '../img/hogehoge.png';
// アップロードされたファイルに、パスとファイル名を設定して保存
move_uploaded_file($_FILES['upload']['tmp_name'], $uploadfile);
```
ただkanri/sent_imgtest.php となっているのであれば変な感じはしますね・・・。
~~ただkanri/sent_imgtest.php となっているのであれば変な感じはしますね・・・。~~
例えば、下記のようにしてはどうでしょうか?
例えば、階層を明確に参照できるようにするため、下記のようにしてはどうでしょうか?
```php
// ファイルの保存先
$uploadfile = __DIR__.'/../img/hogehoge.png';
```
[__DIR__](http://php.net/manual/ja/language.constants.predefined.php)は記述のあるファイルの存在するディレクトリとなります。
これで確実に、kanri/フォルダからの相対パスで指定ができるはず。
※hogehoge.png部分は自身でつけてあげてださい。
> 試しにアップロード先のパスを
$uploadfile = './img/';
としたところ、kanriフォルダ内にimgという拡張子のない謎のファイルがアップロードされ、
"./" だと「自身と同じ階層から」という指定になるので当該の現象になったわけですね。
第2引数にファイル名が含まれていないのでフォルダのようなファイルが出来上がったわけです。
(ただしtmpファイルから作ってるので中身自体は指定した画像のはず)
1 修正

m.ts10806

m.ts10806 score 36880

2018/02/16 10:48  投稿

惜しいところまでいってますね。
ひとまず、move_uploaded_file()の第2引数はファイル名も込みないと行けませんので、
ひとまず、move_uploaded_file()の第2引数はファイル名も含める必要がありますので、
任意の名前をつけると良いです。
例:
```php
// ファイルの保存先
$uploadfile = '../img/hogehoge.png';
// アップロードされたファイルに、パスとファイル名を設定して保存
move_uploaded_file($_FILES['upload']['tmp_name'], $uploadfile);
```
ただkanri/sent_imgtest.php となっているのであれば変な感じはしますね・・・。
例えば、下記のようにしてはどうでしょうか?
```php
// ファイルの保存先
$uploadfile = __DIR__.'/../img/hogehoge.png';
```
[__DIR__](http://php.net/manual/ja/language.constants.predefined.php)は記述のあるファイルの存在するディレクトリとなります。
これで確実に、kanri/フォルダからの相対パスで指定ができるはず。
※hogehoge.png部分は自身でつけてあげてださい。
※hogehoge.png部分は自身でつけてあげてださい。
> 試しにアップロード先のパスを
$uploadfile = './img/';
としたところ、kanriフォルダ内にimgという拡張子のない謎のファイルがアップロードされ、
"./" だと「自身と同じ階層から」という指定になるので当該の現象になったわけですね。
第2引数にファイル名が含まれていないのでフォルダのようなファイルが出来上がったわけです。
(ただしtmpファイルから作ってるので中身自体は指定した画像のはず)

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る