2012-04-01 8 views
0
<? 
if(isset($_POST['submit'])){ 

$url = 'http://www.connectedcampus.org/ckeditor/images/uploads/'; 

if (($_FILES['upload'] == "none") OR (empty($_FILES['upload']['name']))) 
{ 
    $message = "No file uploaded."; 
} 
else if ($_FILES['upload']["size"] == 0) 
{ 
    $message = "The file is of zero length."; 
} 
else if (($_FILES['upload']["type"] != "image/pjpeg") AND ($_FILES['upload']["type"] != "image/jpeg") AND ($_FILES['upload']["type"] != "image/png")) 
{ 
    $message = "The image must be in either JPG or PNG format. Please upload a JPG or PNG instead."; 
} 
else if($_FILES["file"]["size"] > 1000000){ 
    $message = "File size too big!"; 
} 
else if(file_exists($url.$_FILES["file"]["name"])) 
    { 
    $message=$_FILES["file"]["name"] . " already exists. "; 
    } 
else if (!is_uploaded_file($_FILES['upload']["tmp_name"])) 
{ 
    $message = "Invalid File!"; 
} 
else { 
    $message = "success!"; 
    $move = move_uploaded_file($_FILES['upload']['tmp_name'], $url.$_FILES['upload']['name']); 
    echo $_FILES['upload']['tmp_name']."<br>"; 
    echo $url.$_FILES['upload']['name']; 
    if(!$move) 
    { 
    $message = "Error moving uploaded file."; 
    } 
    $url = $url.$_FILES['upload']['name']; 
} 
echo $message; 
</script>"; 
} 
?> 

($ _ FILES [ 'アップロード'] [ 'tmp_name']、$のURL move_uploaded_fileを意味 この版画 "アップロードされたファイルを移動するエラー"。$ _ FILES [ 'アップロード'] [ '名前']) はfalseを返します。しかし、私は確かに私がhttp://www.connectedcampus.org/ckeditor/images/uploads/フォルダを正しく作成したことを500%確信しています....そして、なぜそこにエラーがありますか?PHPイメージのアップロード奇妙な問題

今に変更し、[OK]を:

$url = 'bloguploads/'; 

    if (($_FILES['upload'] == "none") OR (empty($_FILES['upload']['name']))) 
    { 
     $message = "No file uploaded."; 
    } 
    else if ($_FILES['upload']["size"] == 0) 
    { 
     $message = "The file is of zero length."; 
    } 
    else if (($_FILES['upload']["type"] != "image/pjpeg") AND ($_FILES['upload']["type"] != "image/jpeg") AND ($_FILES['upload']["type"] != "image/png")) 
    { 
     $message = "The image must be in either JPG or PNG format. Please upload a JPG or PNG instead."; 
    } 
else if($_FILES["file"]["size"] > 1000000){ 
     $message = "File size too big!"; 
} 
else if(file_exists($url.$_FILES["file"]["name"])) 
    { 
     $message=$_FILES["file"]["name"] . " already exists. "; 
    } 
    else if (!is_uploaded_file($_FILES['upload']["tmp_name"])) 
    { 
     $message = "Invalid File!"; 
    } 
    else { 
     $message = ""; 
     $move = move_uploaded_file($_FILES['upload']['tmp_name'], $url.$_FILES['upload']['name']); 
     if(!$move) 
     { 
      $message = "Error moving uploaded file."; 
     } 
     $url = $url.$_FILES['upload']['name']; 
     } 
echo $message; 
</script>"; 
?> 

今ところは、 "既に存在する" と言い、あります。どうして? ftpクライアント経由でファイルがアップロードされていないことがわかります

+2

読み取り/書き込み権限多分:代わりに$url

move_uploaded_file($_FILES['upload']['tmp_name'], $url.$_FILES['upload']['name']); 

で使用するファイルシステムのパス、すなわちの

? – hjpotter92

+0

@ hjpotter92 chmod($ _ FILES ['upload'] ['tmp_name']、777); $ message = "成功!";$ move = move_uploaded_file($ _ FILES ['アップロード'] ['tmp_name']、$ url。$ _ FILES ['upload'] ['name']); &uploadsフォルダのアクセス許可を変更しました...何も動作しません。 –

+0

"Filename.jpgは既に存在しています"ではなく、 "already exists"と表示されています。 –

答えて

1

move_uploaded_fileはURLではなくファイルシステム上で動作します。

move_uploaded_file($_FILES['upload']['tmp_name'], "/home/www/uploads/".$_FILES['upload']['name']); 
+0

$ url = '/ ckeditor/images/uploads/'; にもアップロードファイルのエラーが表示されます。 :/ –

+0

相対パスを使用しようとしている場合は、先頭から '/'を削除してください。しかし、より良いアイデアは、時間を費やして、絶対パス/相対パス、現在の作業ディレクトリ、PHPでそれらを処理する方法を学ぶことです。 –

+0

上記の質問の編集をご覧ください。私はその道を訂正した。 非常に奇妙なことに、「既に存在する」と言われています –