hmmmm, tôi nghĩ có nhiều cách hiệu quả để làm cho nó đặc biệt cho những người muốn nhắm mục tiêu tất cả các trình duyệt chứ không chỉ FormData trình duyệt được hỗ trợ
ý tưởng ẩn IFRAME trên trang và gửi bình thường cho ví dụ Từ bên trong IFrame
<FORM action='save_upload.php' method=post
enctype='multipart/form-data' target=hidden_upload>
<DIV><input
type=file name='upload_scn' class=file_upload></DIV>
<INPUT
type=submit name=submit value=Upload /> <IFRAME id=hidden_upload
name=hidden_upload src='' onLoad='uploadDone("hidden_upload")'
style='width:0;height:0;border:0px solid #fff'></IFRAME>
</FORM>
quan trọng nhất là tạo mục tiêu của biểu mẫu ID hoặc tên iframe ẩn
và nhập dữ liệu đa phần / biểu mẫu để cho phép chấp nhận ảnh
bên javascript
function getFrameByName(name) {
for (var i = 0; i < frames.length; i++)
if (frames[i].name == name)
return frames[i];
return null;
}
function uploadDone(name) {
var frame = getFrameByName(name);
if (frame) {
ret = frame.document.getElementsByTagName("body")[0].innerHTML;
if (ret.length) {
var json = JSON.parse(ret);
}
}
}
Ví dụ về phía máy chủ PHP
<?php
$target_filepath = "/tmp/" . basename($_FILES['upload_scn']['name']);
if (move_uploaded_file($_FILES['upload_scn']['tmp_name'], $target_filepath)) {
$result = ....
}
echo json_encode($result);
?>