$upload='hoge' のhogeにはどんなディレクトリでも構わないのか?
->/Users/username/Desktopではエラーが出ました。
HTMLからPHPへファイルをアップロードするということなので、hogeディレクトリ
は、Webサーバーの書き込み権限があるディレクトリ(普通はドキュメントルート以下)のみに限られれます。
ディレクトリもアップロード処理を行う前に作成しておく必要があります。
php
1// /var/www/html/public_htmlがドキュメントルートだとする
2$upload = '/var/www/html/public_html/hoge';
3
4if (! file_exists($upload)) {
5 mkdir($upload, 755, true);
6}
7
8move_uploaded_file($_FILES['image']['tmp_name'], $upload);
/Users/username/Desktop
にどうしてもアップロードしたいなら、ディレクトリのオーナーをWebサーバーと同じオーナーに変更するか、パーミッションを変更しておきます。
bash
1chown .apache /Users/username/Desktop/hoge && chmod 775 /Users/username/Desktop/hoge
2##または、
3chmod 777 /Users/username/Desktop/hoge
['tmp_name']は画像名ということでしょうか?
PHPマニュアルにあるとおり、アップロードファイルの一時ファイル名です。$_FILEの連想配列構造は下記のようになっています(PHPマニュアルまとめ)。
キー | 概要 |
---|
name | クライアントマシンの元のファイル名 |
type | ファイルのMIME型(image/gif, 信用できない) |
size | アップロードされたファイルのバイト単位のサイズ |
tmp_name | アップロードされたファイルがサーバー上で保存されているテンポラリファイルの名前 |
error | ファイルアップロードに関するエラーコード |
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/08 13:49