我無法通過AJAX上傳圖片文件。無法從FormData獲取服務器上的數據
網站:
<div>
<form id="birdi_image_form">
<input type="file" name="birdi_image" id="birdi_image" ></input>
</form>
<input type="text" name="species"></input>
<textarea name="comments"></textarea>
</div>
<div id="debug"></div>
<script type="text/javascript">
jQuery(function($){
$('#birdi_image').change(function(){
var ima = new FormData($('#birdi_image_form')[0]);
$.ajax({
url:"/bird/bird_scripts/fu.php",
type:"post",
data: ima,
processData: false,
dataType:"text",
success:function(data, textStatus, jqXHR) {
$('#debug').text(data);
}
});
});
});
</script>
/bird/bird_scripts/fu.php:
<?php
$imagedir = '/images';
$tmpfname = tempnam($imagedir, "b_");
echo var_dump($_POST);
if (move_uploaded_file($_FILES['birdi_image']['tmp_name'], $tmpfname)) {
echo "File is valid, and was successfully uploaded.\n";
} else {
echo "Upload failed";
}
?>
環視在線我期待找到我$_FILES
變量內容,但這是空的。將$_POST
var拋出到屏幕上,如下例所示。 $_POST['birdi_image']
給我NULL
。
陣列(68){[ 「------ WebKitFormBoundaryYCAoI8shwgBavjJP 內容處置:_form數據; _name」] =>的字符串(339) 「」 birdi_image 「; 文件名=」 test.jpg放在「Content-Type:image/jpeg JFIFdd ExifMM bj(1r2 i [email protected]'B @'Adobe Photoshop CS2 Windows2008:06:24 11:11:48 b g「 [」?o ( ci \ R Μꟑ ]T z 「] => string(82)」 f zߠ 012i
���/��v��E~��[,�Y �s�������1l�G����-���߿�enu'=�v�z���=?Ҳ���" ["�{��<o��ӗ�M��ysnʨo87~;l���۔�"]=> string(172) "�<��t�2~���O�S �����t���㵺C�}E������}��I�d]c���y}#�����C,�Z��־��V��ynʿ��?�g�*����o��ٌ�.}�y����}��z����w^�]�m�u������z>�37�_C긵��K�Y-{��뺷��M���ul��Y�" ["c�yhHp����"]=> string(152) "��[-���1�]��|�����۽Q�\�e���o�~��g������u�.���A��t�]�3�W�ד��b���}>�����%��K���Ѳ�3���zX��qZ��}u��sc� ���N� ^-w�7���\r� ����c��=?δX�j" ["C�uw���-��"]=> string(57) "���m��w��������ѩ���������k��r����m�t�62rIk���m�ߗV��}" ["�"]=> string(384) "!�<��B���6*�c��劷Q���uF*��U��������ď,�
y {R E% Q 5. IE N Ο ̿4〜R .. .............上傳失敗。
我已經使用完整的表單提交之前上傳了文件。這是我第一次嘗試使用AJAX做到這一點。它看起來像數據到達服務器,但我似乎無法從服務器端理解它。正如你在代碼中看到的那樣,我期望$_FILES['birdi_image']
存在,但它不存在。我在做一些完全錯誤的事情嗎?
感謝
就是這樣,謝謝。 –