任何人都知道如何上傳文件到服務器的物理位置。有可能使用我知道的文件上傳控制。但我想避免頁面的外部回發。例如,就像雅虎郵件所做的一樣。
在雅虎郵件最新版本,如果你附加一個文件,不會回發並將該文件附加到服務器。這背後的技術是什麼?
任何人都知道如何上傳文件到服務器的物理位置。有可能使用我知道的文件上傳控制。但我想避免頁面的外部回發。例如,就像雅虎郵件所做的一樣。
在雅虎郵件最新版本,如果你附加一個文件,不會回發並將該文件附加到服務器。這背後的技術是什麼?
正常情況下,當您提交表單時,它會向服務器發送POST請求,導致刷新。 Ajax請求通過使用JavaScript將POST數據發送到服務器來解決此問題,並且不需要頁面刷新。
儘管Ajax請求不能用於發送文件數據,所以目前最好的方法是使用iframe hack - 使用JavaScript在iframe中動態構建表單,通過JavaScript提交表單,並監聽iframe的onload事件。所以你知道表單何時提交。這種方法的一個版本,在這裏詳細描述:
http://www.webtoolkit.info/ajax-file-upload.html
其他方法來做這將包括使用像http://www.swfupload.org/一個基於Flash的解決方案或類似http://www.plupload.com/的包裝 - 這些會阻止你有推出自己的解決方案,還會提供一些額外的功能 - 例如上傳進度反饋。