2017-04-06 73 views
1

我有一個圖像上傳表單一個非常簡單的HTML頁面如下:圖像不被保存在PHP腳本

<form id="file_data"> 
    <input type='file' id='image_uploaded' accept='image'/> 
    <input type='submit' id="upload_image"/> 
</form> 

我的javascript:

$(document).ready(function() { 
    $("form[id='file_data']").submit(function() { 
     var form_data = new FormData(this); 

     $.ajax({ 
      url: "upload.php", 
      type: "POST", 
      data: form_data, 
      processData: false, 
      success: function(data) { 
       alert(data); 
      } 
     }); 
    }); 
}); 

upload.php是創建一個目錄來存儲圖片,如果該目錄不存在。然後應該存儲在目錄中的圖像:

<?php 
    define("IMAGE_DIRECTORY", "images"); 

    //If the directory for images does not exist, create it 
    if(!is_dir(IMAGE_DIRECTORY)) { 
     mkdir(IMAGE_DIRECTORY, 0777, true); 
    } 

    move_uploaded_file($_FILES["tmp_name"], IMAGE_DIRECTORY . "\\" .basename($_FILES["file"]["name"])); 
?> 

雖然PHP腳本將創建目錄,如果它不存在,它不保存到目錄中的任何圖片。我假設我沒有從PHP正確訪問圖像,但是我看過的教程並沒有解釋太多的細節,當圖像通過Ajax調用發送到PHP時發生的實際情況。

+1

你的文件輸入似乎缺乏一個name屬性 –

回答

4

問題你缺少代碼:

的Htmlenctype="multipart/form-data"form上傳文件,也<input type="file"失蹤name="file"

move_uploaded_file不正確你缺少['file']對不對tmp_name $_FILES['file']["tmp_name"]

AjaxdataType:"html"缺少讓你的Ajax得到響應,從服務器字符串

更新您的的Html阿賈克斯這樣的代碼:

HTML代碼:

<form id="file_data" enctype="multipart/form-data" method="post"> 
    <input type='file' name='file' id='image_uploaded' accept='image'/> 
    <input type='submit' id="upload_image"/> 
</form> 

菲律賓編號:

<?php 
    define("IMAGE_DIRECTORY", "images"); 

    //If the directory for images does not exist, create it 
    if(!is_dir(IMAGE_DIRECTORY)) { 
     mkdir(IMAGE_DIRECTORY, 0777, true); 
    } 

    move_uploaded_file($_FILES['file']["tmp_name"], IMAGE_DIRECTORY . "\\" .basename($_FILES["file"]["name"])); 
?> 

Ajax代碼:

$.ajax({ 
    url: "upload.php", 
    data : form_data, 
    type : "POST", 
    async: false, 
    cache: false, 
    contentType: false, 
    processData: false, 
    dateType : "html", 
    success: function(data) { 
     alert(data); 
    } 
}); 
+0

您可以標記這個答案有幫助,如果你的作品,以便它幫助別人作爲well.Thanks –

+0

不幸的是,它不適用於我 – lillemap

+0

我試着回顯'move_uploaded_file($ _ FILES ['file'] [「tmp_name」],IMAGE_DIRECTORY。 「\\」.basename($ _ FILES [「file」] [「name」]));'在Ajax調用中成功或失敗時顯示警報但沒有任何迴應 – lillemap