2017-06-24 16 views
1

イメージファイルをアップロードする簡単なPHPコードを記述しました。画像は正常にアップロードされています。ここでPHPを使用してファイルをアップロードした後、FTPを使用してファイルをダウンロードできません。

私のコードは、

mkdir("uploaded images", 0777, true); 
move_uploaded_file($sourcePath,$targetPathNew); 

ですが、私はそのイメージをダウンロードするとき、それは Response: 550 Access is denied. Error: Critical file transfer error

enter image description here

私に示してくれてありがとう

+0

毎回フォルダーを作成しますか? –

+0

FTPサーバーに接続するためにどのユーザーを使用しますか? – Xatyrian

+0

いいえ、フォルダは1回のみ作成します。 –

答えて

2

これは、ファイルのアクセス権が原因であります。アップロードされたファイルはWebサーバーユーザー(www-dataなど)が所有し、FTPサーバーは別のユーザーで実行されます。フォルダのアクセス許可を0777(すべてにすべてを許可)に変更しても、ファイルは同じアクセス許可を継承しません。

move_uploaded_file(...)の後にコードにchmod($targetPathNew, 0777)を追加することができます。

さらに厳しいサーバー構成のためにこれが機能しなくなる可能性はありますが、あなたがLinuxパーミッションに慣れていない(私が間違っていれば申し訳ありませんが)あなたの質問で判断して、私はこれに潜り込むつもりはありません。ここでは、アクセス許可に関する重要な情報をいくつか見つけることができます。たとえば、次のようになります。https://www.tutorialspoint.com/unix/unix-file-permission.htm

関連する問題