2016-09-30 55 views
0

我想建立一個窗體異步上傳圖像到我的網站。它適用於新的瀏覽器,然後AJAX更新我的圖像列表,而無需刷新整個頁面。IE8/9 - 提交表單與圖像文件異步 - 無formData支持

我遇到的問題是它不能在IE8 & IE9(也可能是其他人),因爲這些瀏覽器不支持「FormData」。我需要一個用戶上傳圖片的替代方案(帶有額外的隱藏表單輸入字段),圖片列表應在上傳完成後更新 - 無需整個頁面刷新。

這裏基本上是我到目前爲止有:

<div class="imagelist"> 
... list of images here should be updated by ajax after each upload... 
</div> 

<form name="uploadform" id="uploadform" method="post" action="/edit-images/uploadimage.php" enctype="multipart/form-data"> 
    <input type="hidden" name="itemimagesid" value="<?php echo $itemid; ?>" /> 
    <input type="hidden" name="itemtype" value="new" /> 
    <input type="file" name="imagefile" id="imagefile" onchange="uploadFile()"> 
</form> 

<script type="text/javascript"> 
function uploadFile() { 
    if (!window.FormData || window.FormData === undefined) { // old crappy browsers that can't use ajax/file submit. 
    $('#uploadform').append("<input type='hidden' name='oldbrowser' value='1'>"); 
    ... 
    [ need a solution here ] 
    ... 
    return; 
    } 
} 
</script> 

我需要的東西,在2016年的作品我有引導3.3.2,它使用了jQuery版本1.11.2。我搜索了stackoverflow,並沒有解決方案的工作。我試過「jQuery表單插件」,它完全沒有,甚至沒有初始化 - 可能是因爲我的jQuery版本對於那個腳本來說太新了。希望今天有更好的解決方案。

+0

解決方案是,如果可以的話,使用異步,如果瀏覽器不支持formData,那麼只需觸發一個表單提交:) – Hackerman

+0

舊的iframe上傳黑客仍然在IE8中工作得很好,所以你可以這樣做。在某處可能有一箇舊的教程,沒有人真的支持IE8了。 – adeneo

回答

0

沒關係,我能弄清楚iframe的入侵。