2010-11-27 82 views
1

我正在使用mootools創建ajax上傳程序。當我刪除ajax並簡單地上傳表單時,我得到$ _FILES和存在的文件數據。但是當我使用ajax版本時,$ _FILES超級全局變量是空的。表格的其他部分都存在。它的行爲就好像它根本不發送圖像,但只在ajax版本中發送。任何幫助表示讚賞。 謝謝!使用Mootools上傳圖片

<form id="uploadphoto_pod" action="upload.php" enctype="multipart/form-data" method="post"> 
<input type='file' id='uploadphoto' name='uploadphoto'/> 
<input type="submit" class="submit" name="add_product" value="Upload" /> 
    </form> 
    <div id="response"><!-- Ajax Response --></div> 
<script type="text/javascript"> 
window.addEvent('domready', function(){ 
$('uploadphoto').addEvent('submit', function(e) { 
    //Prevents the default submit event from loading a new page. 
    e.stop(); 
    //("this" refers to the $('uploadphoto') element). 
    this.set('send', {onComplete: function(response) { 
     $('response').set('html', response); 
    }}); 
    //Send the form. 
    this.send(); 
}); 
}); 
    </script> 

回答

0

你不能用Javascript單獨做到這一點。您將需要某種類似SWFUpload的Flash插件。或使用新的XMLHTTPRequest v2。所有瀏覽器都不支持最後一個。所以現在堅持第一個選擇。

+0

謝謝您的迴應 – abhis 2010-11-27 10:44:58

2

還有"Form.Upload" Mootools Plugin,它具有很好的HTML5上傳功能,可以自動回退舊版瀏覽器 - 它可以很好地實現,甚至可以實現多文件上傳拖拽支持,但可悲的是缺少一點可擴展性 - 我目前試圖實現一個功能,讓我添加額外的表單元素 - 目前,只有文件輸入框正在提交。

就在幾分鐘前,我發現this simple and lean "File.Upload" Extension - 這終於成功了。這是非常可配置的,並允許我發送額外的字段到表單數據的接收文件。儘管沒有多個文件選擇,但它對於簡單的單個文件ajax上傳似乎非常完美,並且可以通過文件選擇器輸入字段的更改事件觸發。