2011-11-14 2 views
0

私のサーバーのディレクトリに以下のコードで画像をアップロードしようとしました。アップロードしたファイルを移動するときのエラー

警告: move_uploaded_file(画像/)[function.moveアップロードファイル]:しかし、私はそれを実行したとき、私はこのエラーを取得するストリームをオープンに失敗しました:/ホーム/ a2943534/public_htmlのディレクトリですライン上/add.php 24

警告: move_uploaded_file()[function.moveアップロードファイル]:/ホーム/ a2943534/public_htmlの/の '画像/' に '/ tmpに/ php7yEkDe' を移動できませんadd.php on line 24

私はここで何が欠けていますか?

私はあなたが

タイトルが$ _FILES [ '写真']

内に存在していないため

$target = $target . basename($_FILES['photo']['name']); 

これでなければなりません

$target = $target . basename($_FILES['photo']['title']); 

でミスを犯すと思う

<?php 
include_once("connect.php"); 
?> 
<?php 

//This is the directory where images will be saved 
$target = "images/"; 
$target = $target . basename($_FILES['photo']['title']); 

//This gets all the other information from the form 
$title=$_POST['title']; 
$name=$_POST['name']; 
$describe=$_POST['describe']; 
$pic=($_FILES['photo']['title']); 
$url=$_POST['url']; 
$country=$_POST['country']; 
$endDate=$_POST['endDate']; 


//Writes the information to the database 
mysql_query("INSERT INTO `authors` VALUES ('$title', '$name', '$describe', '$pic', '$url', '$country', '$endDate')") ; 

//Writes the photo to the server 
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target)) 
{ 

//Tells you if its all ok 
    $result = "The file ". basename($_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory"; 
} 
else { 

//Gives and error if its not 
$result = "Sorry, there was a problem uploading your file."; 
} 
?> 
<?php 
// if the form has been submitted, display result 
if (isset($result)) { 
    echo "<p><strong>$result</strong></p>"; 
    } 
?> 
+0

'images'ディレクトリが本当に存在することを確認してください。 –

+0

また、 'images'ディレクトリに書き込み権限があることを確認してください。 – JRSofty

+0

始めにあなたは墨塗りを欠いており、結果として任意のファイル書き込みの脆弱性が生じます。 http://stackoverflow.com/questions/1911382/sanitize-file-path-in-php – Polynomial

答えて

0

ではなく

$target = $target . basename($_FILES['photo']['title']); 

を書いて、あなたが

$target = $target . basename($_FILES['photo']['name']); 

を書く必要があります私は$ _FILES [ '写真'] [ 'タイトル']のようなものはないと思います。..

+0

ありがとうございます。私はそれを変更してあなたに戻ってきます – Kelvin

+1

ありがとう今すぐ:) – Kelvin

+0

私の喜び.... :) –

0

また、このエラーはそれを示します:

Unable to move '/tmp/php7yEkDe' to 'images/' in /home/a2943534/public_html/add.php on line 24 

To images /にはファイル名が含まれていません。

0

このエラーは明らかであり、わかりやすいものです。
2番目のパラメータはのファイル名でなければなりません。

+0

これはファイル名ではありませんか? – Kelvin

+0

あなたのPHPは、あなたがフォルダだけを提供したことを明確に示しています:「** 'images /' ** 'に移動できません。 –

0

別にあなたがここでMySQLを特集しているすべての単一のPHP質問に存在すると思われるSQLインジェクションの問題は、デバッグを開始する必要があります。

エラーが発生するのは、どの行とどの関数呼び出しでエラーが発生しているかです。 Googleでエラーを見て、使用している機能についてmanualを読んでください。

短い説明:2つの変数を作成し、関数呼び出しの前に出力し、何が間違っているかを把握する必要があります。

<?php 

$source = $_FILES['photo']['tmp_name']; 
$target = "images/" . basename($_FILES['photo']['title']); 

echo "Moving '$source' to '$target'"; 

move_uploaded_file($source, $target); 

エラーが発生した場所がすぐに表示されます。

+0

私は動作するようにアップロードビットがありますが、私は動作するように挿入を取得することはできません。誰にも分かりません – Kelvin

+0

"デバッグ開始"部分について何を得ていませんか? :-)あなたの質問にはおそらくエラーがあります。それを印刷し、分析し、機能するまで変更します。ドキュメントを見てください。 – CodeCaster

関連する問題