我想用AJAX上傳圖片。當我這樣嘗試時,沒有任何反應。 AJAX不會撥打H_FileUpload.php
。但$("#in_profile_img")
部分確實有效。只有AJAX調用不起作用。爲什麼它不起作用?如何使用AJAX上傳圖片?
HTML:
<ul class="dropdown-menu fm-menu" role="menu">
<li>
<a href="javascript:void(0)" onclick="$.change_profile_img()">
<i class="fa fa-pencil"></i> Change
</a>
</li>
<li><a href="#"><i class="fa fa-trash-o"></i> Delete</a></li>
</ul>
<form id="form_profile_image" enctype="multipart/form-data" action="" method="POST">
<input type="file" name="profile_img" id="in_profile_img" style="display:none;" />
</form><!-- profile image form -->
的JavaScript:
$.change_profile_img = function() {
$("#in_profile_img").click();
}
$("#in_profile_img").on('change', (function(e) {
e.preventDefault;
var formData = new FormData(this);
$.ajax({
url : "./handlers/H_FileUpload.php",
type : "POST",
data : formData,
cache : false,
contentType : false,
processType : false,
success : function(data) {
alert("Success");
alert(data);
}
});
}));
PHP(H_FileUpload.php):
<?php
$name = $_FILES["profile_img"]["name"];
$result["ok"] = $name;
echo json_encode($result);
?>
不知道爲什麼你的函數'點擊()',你的事件IM是'變化()'? – guradio
是的,單擊事件打開目錄和更改選擇圖像的事件,這不是問題或答案 – Dauezevy
我建議在選擇圖像後有一個上傳按鈕。爲什麼?因爲如果你繼續改變圖片,然後發射ajax上傳圖像到你的服務器,這不是一件好事。你還需要考慮,當用大文件大小觸發ajax時,用戶會突然改變圖像。你認爲會發生什麼?我很確定你沒有包括這種情況 –