2016-03-27 18 views
0

私はモバイルデバイスを使って画像をアップロードできるように私のサイトを設定しようとしています。しかし、私はそれが動作しない画像をアップロードしようとすると、2つのエラーアウトスローたび:イメージアップロードが動作しませんPHP?

警告:move_uploaded_file(UPLOADS /画像添付27/03/16.jpg)[function.moveアップロードファイルを] :ストリームを開くことに失敗しました:/home3/hutch/hublic/html/stencylcollins/upload1.php 29行目にそのようなファイルやディレクトリはありません

警告:move_uploaded_file()[function.move-uploaded-file] /home3/hutch/public_html/stencylcollins/upload1.phpでUPLOADS /画像添付27/03/16.jpg '「に'/tmpに/ phpSZy8LWライン上の29

そして目の後

アップロード成功:文書がアップロードされ、送信準備が整いました。

誰でもここで何が起こっているか知っていますか?

<?php 
    //login 
    ob_clean();session_start(); 

    if (isset($_GET['logout'])){ 
    session_destroy(); 
    } 

    if (!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] == false) { 
     header("Location: index.php"); 
    } 

    //timezone 

    date_default_timezone_set('Europe/London'); 
    $date = date('d/m/y', time()); 

    //upload 
    if(isset($_FILES['UploadFileField'])){ 
     $allowed = array('jpg','png','jpeg'); 
     $name = $_FILES["UploadFileField"]["name"]; 
     $tmp = $_FILES['UploadFileField']['tmp_name']; 
     $type = $_FILES['UploadFileField']['type']; 
     $newName = "Image Attachment ".$date.".jpg"; 
     $types = array('jpg','png','jpeg'); 
     $ext = pathinfo($name, PATHINFO_EXTENSION); 

     if(in_array($ext,$types)){ 
      move_uploaded_file($tmp, "UPLOADS/$newName"); 
      echo '<font color="#006600" size="3"><p align="center"><b>UPLOAD SUCCESSFUL: </font><font color="#000000" size="3">Your document has now been uploaded and is ready to send.</b></p></font>'; 
     } 

     else { 
      if(!$tmp){ 
       echo '<font color="#FF0000" size="3"><p align="center"><b>UPLOAD FAILED: </font><font color="#000000" size="3">No document has been selected.</b></p></font>'; 
      } 

      else { 
       echo '<font color="#FF0000" size="3"><p align="center"><b>UPLOAD FAILED: </font><font color="#000000" size="3">Uploaded document was an incorrect extension type, please use ".jpg", ".jpeg", or "png" only.</b></p></font>'; 
      } 
     } 
    } 
?> 
+0

HTMLフォームがどのようなものかわからないと言うのは難しいです。さらに、* NIXサーバでは、 'UPLOADS'は' uploads'と同じではありません。さらに、私はGET配列を見るので、有効なenctypeを含むPOSTとは対照的に、フォームがGETを使用していないことを確認してください。 –

+0

あなたは以下の「回答」を受け取りました。私はあなたが彼と一緒にそれを取るようにします。それが「解決策」であろうとなかろうと、私はそれを超えています。 –

答えて

1

あなたはファイル名にスラッシュを持つことはできません。ファイル名Image Attachment 27/03/16.jpgは、実際にはというフォルダ内の16.jpgというファイルを参照しているため、完全に無効です。ファイル自体はImage Attachment 27です。これらのディレクトリは存在しないため、エラーになります。

+0

問題を解決していただきありがとうございます。 –

-2

ファイル名にはスペースが含まれますか?私はこれが悪い方法だと思う。あなたはいけない

// $newName = "Image Attachment ".$date.".jpg"; ??? 
$newName = "Image_Attachment_".$date.".jpg"; 

// you can check where you trying to upload a file 
if(is_dir("UPLOADS/")) { echo "dir ok";} else { echo "dir not ok"; } 

し、コードの2番目のパラメータなしdate()は、現在の日付を返すため、日付関数にtime()を使用する必要があります:)

+0

* "スペースを含むファイル名" * - なぜですか? –

+0

あなたはそれを使うことができます)しかし、それは悪い練習だと思います – Veniamin

関連する問題