文件跨域上傳
你好!
另一台機器也要有處理文件上傳的WEB程序鄭慶,你可以喊蠢握參考Stream上傳插件(支持HTML5和Flash兩種方式上傳)
Stream 上傳插件
Stream 是解決不同瀏覽器上傳文件的插件,是Uploadify的Flash版和Html5版的結合!
Stream 簡介
Stream 是根據某網的文件上傳插件加工而來,支持不同平台(Windows, Linux, Mac, Android, iOS)下,主流瀏覽器(IE7+, Chrome, Firefox, Safari, 其他)的上傳工作,當然在Html5標准下,還支持文件檔如的斷點續傳功能,有效解決大文件的Web上傳問題!
主要特徵
1. 源碼完全開放,目前有Java、PHP、Perl三種後台語言實現
2. 支持HTML5、Flash兩種方式(跨域)上傳
3. 多文件一起上傳
4. HTML5支持斷點續傳,拖拽等新特性
5. 兼容性好IE7+, FF3.6+, Chrome*,Safari4+,遨遊等主流瀏覽器
6. 進度條、速度、剩餘時間等附屬信息
7. `選擇文件的按鈕`可以自定義
8. 簡單的參數配置實現 靈活多變的功能
9. 支持文件夾上傳(Chrome21+, Opera15+)
10. 支持自定義UI(V1.4+)
指定跨域上傳就可以了
這些都是小鳥雲的工程師告訴我的,建議你可以試試小鳥雲
Ⅱ 前端上傳文件的幾種方法
1.表單上傳
最傳統的圖片上傳方式是form表單上傳,使用form表單的input[type=」file」]控制項,打開系統的文件選擇對話框,從而達到選擇文件並上傳的目的。
form表單上傳
表單上傳需要注意以下幾點:
(1).提供form表單,method必須是post。
(2).form表單的enctype必須是multipart/form-data。
javascript學習交流群:453833554
enctype 屬性規定在發送到伺服器之前應該如何對表單數據進行編碼。默認地,表單數據會編碼為 "application/x-www-form-urlencoded"。就是說,在發送到伺服器之前,所有字元都會進行編碼。HTML表單如何打包數據文件是由enctype這個屬性決定的。enctype有以下幾種取值:
application/x-www-form-urlencoded:在發送前編碼所有字元(默認)(空格被編碼為』+』,特殊字元被編碼為ASCII十六進制字元)。
multipart/form-data:不對字元編碼。在使用包含文件上傳控制項的表單時,必須使用該值。
text/plain:空格轉換為 「+」 加號,但不對特殊字元編碼。
默認enctype=application/x-www-form-urlencoded,所以表單的內容會按URL規則編碼,然後根據表單的提交方法:
method=』get』 編碼後的表單內容附加在請求連接後,
method=』post』 編碼後的表單內容作為post請求的正文內容。
Ⅲ 上傳文件時出現跨域問題
一個新的奇葩問題:前端報跨域出錯,原因卻在後台上傳的文件超過了Tomcat限制。
前端報錯
後端日誌
所以啊,這根本不是跨域的問題, Tomcat默認上傳的文件大小就是1MB ,你上傳的文件超過而已。
你可以在前端配置一下文件大小限制,
例如
或者在後端設置上傳文件大小限制
以SpringBoot為例
在application.yml中添加配置
Ⅳ C# 跨域上傳文件
不可以
解決辦法只能是在一個域上做好上傳文件的頁,
然後在另一個域的一個頁上用iframe嵌套這個頁上傳。
兩站間用post或者get傳遞參數
Ⅳ 用webuploader怎麼解決跨域上傳文件的問題
跨域請求前瀏覽器會自動發出一個options請求,如果伺服器的響應頭部中有如下信息:
Access-Control-Allow-Origin: #允許訪問的源,如http://localhost:3000
Access-Control-Allow-Methods: #允許的方法,如get, post
瀏覽器收到這個響應就會繼續原來的請求,否則就會終止。
在webuploader中可以在uploadBeforeSend的回調中設置請求的頭部,例如
uploader.on('uploadBeforeSend',function(obj,data,headers){
_.extend(headers,{
"Origin":"http://localhost:3000",
"Access-Control-Request-Method":"POST"
});
});
在服務端的post響應中增加頭部:Access-Control-Allow-Origin:http://localhost:3000