2012-03-06 30 views
1

私のPHPプロジェクトを公開サーバにアップロードしようとしています。 製品を作成したり製品を編集するときに、イメージアップロードファイルを作成しました。 ローカルホストで動作しますが、パブリックサーバーに移動すると動作しません。 move_uploaded_fileの部分がうまくいかないと思います。 リンクを変更するにはどうすればよいですか?または何かを変更する必要がありますか? Filzillaを見ると、リモートサイトは '/ www/eshopProject/inventory_images'であることがわかります。 インデックスファイルは '/ www/eshopProject/storeAdmin'です。 このようなリンクを変更する必要はありますか? どうすればリンクを変更できますか。 私を助けることができますか?画像を公開サーバにアップロードしようとしていません。 セキュリティ上の問題はありますか?か何か? 私を助けてください。ありがとう。すべてのPHP move_uploaded_fileが公開サーバで動作していません

--index.php--

$pid = mysql_insert_id(); 
//Place image in the folder 
$newname = "$pid.jpg"; 
move_uploaded_file($_FILES['fileField']['tmp_name'], "../inventory_images/product_$newname"); 
+0

フォルダの権限は何ですか? –

+0

...ユーザーに応じて777以下のようにする必要があります – tonymarschall

+0

完全パスが "/ www/eshopProject/inventory_images"ではないことがほぼ確実ですが、相対パスを使用している場合、スクリプトを実行している場合は問題ありません同じように..エラー報告を有効にし、何が間違っているかを見てください。それは書き込み権限、ファイルサイズのサーバー制限、そのサーバーで無効にされているアップロードなどの多くの理由によって引き起こされる可能性があります – mishu

答えて

4

まず、コメントの来るに述べたように、ディレクトリのパーミッションを確認してください。 シェルアクセス権がある場合は、 "chmod 777 target_dir"または "chmod 707 target_dir"で十分です。

次に、ifとfile_exists関数(http://php.net/manual/en/function.file-exists.php)を使用してデバッグを試みます。

このようなものです。

$uploadedFile = $_FILES['fileField']['tmp_name']; 
$destination = "../inventory_images/product_$newname"; 

if(file_exists($uploadedFile)) 
{ 
    echo "file uploaded to temp dir"; 
} 
else 
{ 
    echo "file upload failed"; 
    exit(); 
} 

if(move_uploaded_file($uploadedFile, $destination)) 
{ 
    echo "upload complete"; 
} 
else 
{ 
    echo "move_uploaded_file failed"; 
    exit(); 
} 

またFILEまたはDIR定数(http://php.net/manual/en/language.constants.predefined.php)を使用して、現在の作業ディレクトリを確認することができます。

これを試してください。

echo __FILE__; 
echo dirname(__FILE__); 
echo __DIR__; 
+0

ああ。私はこのフォルダへのアクセス権を777に変更しています。ありがとう! – wholee1

1

書き込みしようとしているフォルダに書き込みファイルのアクセス許可が設定されていることを確認してください。

関連する問題