• ベストアンサー

move_uploaded_fileについて

宜しくお願いいたします。 <input type="file">で一時的にサーバの/tmpフォルダに写真データをアップし、その後、move_uploaded_fileを使って特定のフォルダに移動しました。が、その移動したファイルのパーミッションが600になってしまうのです。移動したら、そこから動かせなくなってしまいます。このパーミッションをmove_uploaded_fileで移動した後で、755や777にする事は出来るのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • BENGAL
  • ベストアンサー率73% (22/30)
回答No.1

「chmod」という関数があります。 いかがでしょうか?? 参考になれば幸いです。

参考URL:
http://jp2.php.net/manual/ja/function.chmod.php
nikuq
質問者

補足

ありがとうございます。 早速やってみました。教えて頂いた関数でパーミッションの変更は成功しました!ありがとうございます!! しかし、ファイルの移動が出来ませんでした(>_<)。一度アップしてmove_uploaded_fileで移動したファイルをさらに、move_uploaded_fileで別のフォルダに移動する事は出来ないのでしょうか?? すみません。質問の趣旨が変わってしまいましたm(__)m

その他の回答 (3)

回答No.4

ファイルを移動するときは、rename()ね。 rename("/tmp/foo.txt", "/home/user_a/docs/foo.txt"); みたいな感じで。 ちなみに削除したいときは、 unlink("/tmp/foo.txt") で。

nikuq
質問者

お礼

ありがとうございますm(__)m renameでもファイルの移動が出来るんですね(^.^) 削除もできました!アップロードばかりだと、使わないファイルが山積みになってしまいますから、非常に助かる関数です!! 勉強になりましたーm(__)m

  • BENGAL
  • ベストアンサー率73% (22/30)
回答No.3

「move_uploaded_file」は、アップロードされた直後のファイルを操作する関数のために、 一度、コピーしなおしたものには使えません。 その場合は、「copy」を使用してください。 参考になれば幸いです。

nikuq
質問者

お礼

ありがとうございます。 早速copyで試したところ、うまくいきました! ありがとうございましたーm(__)m もっと勉強します・・・

  • re13b
  • ベストアンサー率58% (18/31)
回答No.2

move_uploaded_file は、POST でアップロードされたファイルに対してのみ、有効なのではないでしょうか? コピーしたり移動した後のファイルは、上記のような有効なファイルではないので、move_uploaded_file は動作しないのでは!? php のファイルシステム関数に copy があるので、これでコピー&移動ではダメですか?

nikuq
質問者

お礼

ありがとうございます。 ご返信遅くなりました。 おっしゃる通り、POSTでアップロードしたファイルしかこの関数では移動できないんですね(>_<) 全く勉強不足でした。 ありがとうございましたーm(__)m