當前位置:首頁 » 文件管理 » form跨域上傳文件

form跨域上傳文件

發布時間: 2023-06-14 17:56:49

❶ form表單提交上傳圖片

上傳圖片我首先想到的是利用這個插件,webupload LUploade這類插件大多支持圖片預覽,斷點/分片上傳,功能比較豐富,但是由於後台原因我需要利用form表單進行上傳圖片,所以就整理了一下關於圖片上傳的幾種方式:

1.form表單上傳圖片

表單上傳遇到了一下幾個問題:

(1)進行表單提交時,無法獲取返回值

(2)表單提交會進行頁面刷新

為了解決這個問題,我想到了利用iframe進行解決,在form元素上直接添加target屬性,使提交跳轉頁面直接跳轉到iframe中,阻止頁面進行跳轉,返回結果也會呈現在 iframe框架之中,我們可以去除iframe中的返回值,前提是必須在同一個域名下。這樣我們獲取返回值就會擁有局限性。還好我反降了另外一種方法,jquery中jqueryj.form.js表單提交插件。我們可以直接這樣來獲取表單返回值。

form表單提交注意事項:

(1).提供form表單,method必須是post。

(2).form表單的enctype必須是multipart/form-data。

javascript學習交流群:4538335s's's's'sssssssssssssss54

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請求的正文內容。

(3).提供input type="file"上傳輸入域。

2.ajax無刷新上傳 

ajax和FormData可實現頁面無刷新的文件上傳效果,主要用到了jQuery的ajax()方法和XMLHttpRequest Level 2的

FormData介面。通過FormData對象可以更靈活方便的發送表單數據,因為可以獨立於表單使用。如果你把表單的編碼類型設置為multipart/form-data ,則通過FormData傳輸的數據格式和表單通過submit()方法傳輸的數據格式相同。

ajax無刷新上傳

Ajax無刷新上傳的方式,本質上與表單上傳無異,只是把表單里的內容提出來採用ajax提交,並且由前端決定請求結果回傳後的展示結果。

3.各類插件的使用:

webupload LUPloader

❷ asp.net開發,form表單,file文件上傳

除了改變上傳文件大小還要改變時間限制
<httpRuntime>
executionTimeout= "120 " //允許上傳文件最大等待時間
maxRequestLength= "20480000 " //上傳文件大小
</httpRuntime>
上傳文件大小是由上面兩個參數所決定的. 涉及到安全因素,最好不要設得太大.

❸ 怎麼實現跨域,非同步文件上傳並返回處理結果

先講講如何跨域,跨域方法很多,訪問方式其實與本域名訪問沒有很大不同。簡單列舉幾個:

  1. 使用window.postMessage實現跨域通信。

  2. 使用ajax非同步載入其他網站資源,如載入QQ登陸成功的資料。

  3. 頭部的css、js,img標簽中的src等,都可以填寫外部的鏈接,都算跨域。

然後再講講非同步文件上傳,非同步上傳和非同步上傳文件其實很類似,下面是使用jq的ajaxupload插件進行上傳的示例

$.ajaxFileUpload({
url:'upload.action',//用於文件上傳的伺服器端請求地址
secureuri:false,//一般設置為false
fileElementId:'upload',//文件上傳控制項的id屬性<inputtype="file"id="upload"name="upload"/>
dataType:'json',//返回值類型一般設置為json
success:function(data,status){//伺服器成功響應處理函數
alert(data.message);//從伺服器返回的json中取出message中的數據,其中message為在struts2中action中定義的成員變數
$("#img").attr("src",data.imagePath);
if(typeof(data.error)!='undefined'){
if(data.error!=''){
alert(data.error);
}else{
alert(data.message);
}
}
},
error:function(data,status,e){//伺服器響應失敗處理函數
alert(e);
}

});

❹ 如何利用curl實現form表單提交 帶文件上傳

php">//上傳D盤下的test.jpg文件,文件必須存在,否則curl處理失敗且沒有任何提示
$data=array('name'=>'Foo','file'=>'@d:/test.jpg');
註:PHP5.5.0起,文件上傳建議使用CURLFile代替@

$ch=curl_init('http://localhost/upload.php');
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
curl_exec($ch);

更多內容請參考:http://www.zjmainstay.cn/php-curl#十模擬上傳文件

❺ 上傳文件時出現跨域問題

一個新的奇葩問題:前端報跨域出錯,原因卻在後台上傳的文件超過了Tomcat限制。

前端報錯

後端日誌

所以啊,這根本不是跨域的問題, Tomcat默認上傳的文件大小就是1MB ,你上傳的文件超過而已。

你可以在前端配置一下文件大小限制,

例如

或者在後端設置上傳文件大小限制

以SpringBoot為例

在application.yml中添加配置

❻ 前端上傳文件的幾種方法

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請求的正文內容。

❼ PHP跨域上傳的幾種方法

方法一:
文件夾:/home/web/attachments
虛擬二級目錄到/home/web/zxsv/下(支持同區域網的伺服器)
​這樣多個子域名進行上傳的設計時,只需要attachments目錄映射為相關的域名的二級目錄,這樣就可實現多個子域名共享一個附件伺服器了,這種方法最好是用區域網中的附件伺服器,這樣流量是分開的,當然訪問附件的域名是apache,ngixn,IIS等的虛擬二級目錄就不說了,好處是現有程序不做任何修改,唯一壞處就是兩台伺服器必須在一個區域網中,當然你用單台也就沒這個問題了
方法二:ftp同步更新
PHP是支持FTP的,給個FTP類裡面(不是我寫的,只是加了個建立多級目錄),自己看著辦吧,上傳後調用FTP類,同步到FTP伺服器中,好處是現有程序只需要在上傳那段加上FTP上傳就行了,壞處就是一定要支持FTP
<?php
$ftp=new Ftp;
//print_r($ftp->nlist(」"));
$ftp->makedir(」3″);
//$ftp->put(」comment.php」,」1.txt」);
$ftp->bye();
//R FTP 處理;
class ftp {
var $ftpUrl = 『www.zxsv.com』;
var $ftpUser = 『zxsv』;
var $ftpPass = 『111111′;
var $ftpDir = 『/zxsv/』;
var $ftpR = 」; //R ftp資源;
var $status = 」;
//R 1:成功;2:無法連接ftp;3:用戶錯誤;
function ftp() {
if ($this->ftpR = ftp_connect($this->ftpUrl, 21)) {
if (ftp_login($this->ftpR, $this->ftpUser, $this->ftpPass)) {
if (!empty($this->ftpDir)) {
ftp_chdir($this->ftpR, $this->ftpDir);
}
ftp_pasv($this->ftpR, true);//R 啟用被動模式;
$status = 1;
} else {
$status = 3;
}
} else {
$status = 2;
}
}
//R 切換目錄;
function cd($dir) {
return ftp_chdir($this->ftpR, $dir);
}
//建立目錄
function mkdir($dir){
return ftp_mkdir($this->ftpR, $dir);
}
function makedir($dir) {
if(!$dir) return 0;
$dir = str_replace( 「\\」, 「/」, $dir );
$mdir = 「」;
foreach(explode( 「/」, $dir ) as $val ) {
$mdir .= $val.」/」;
if( $val == 「..」 || $val == 「.」 ) continue;
if(!@mkdir($mdir)){
echo 「創建目錄 [".$mdir."]失敗.」;
//exit;
}
}
return true;
}
//刪除目錄
function rmdir($dir){
return ftp_rmdir($this->ftpR, $dir);
}
//R 返回當前路勁;
function pwd() {
return ftp_pwd($this->ftpR);
}
//R 上傳文件;
function put($localFile, $remoteFile = 」) {
if ($remoteFile == 」) {
$remoteFile = end(explode(』/', $localFile));
}
$res = ftp_nb_put($this->ftpR, $remoteFile, $localFile, FTP_BINARY);
print_r($res);
while ($res == FTP_MOREDATA) {
$res = ftp_nb_continue($this->ftpR);
}
if ($res == FTP_FINISHED) {
return true;
} elseif ($res == FTP_FAILED) {
return false;
}
}
//R 下載文件;
function get($remoteFile, $localFile = 」) {
if ($localFile == 」) {
$localFile = end(explode(』/', $remoteFile));
}
if (ftp_get($this->ftpR, $localFile, $remoteFile, FTP_BINARY)) {
$flag = true;
} else {
$flag = false;
}
return $flag;
}
//R 文件大小;
function size($file) {
return ftp_size($this->ftpR, $file);
}
//R 文件是否存在;
function isFile($file) {
if ($this->size($file) >= 0) {
return true;
} else {
return false;
}
}
//R 文件時間
function fileTime($file) {
return ftp_mdtm($this->ftpR, $file);
}
//R 刪除文件;
function unlink($file) {
return ftp_delete($this->ftpR, $file);
}
function nlist($dir = 『/service/resource/』) {
return ftp_nlist($this->ftpR, $dir);
}
//R 關閉連接;
function bye() {
return ftp_close($this->ftpR);
}
}
?>

熱點內容
wifi路由手機怎麼設置密碼 發布:2025-02-06 07:00:57 瀏覽:985
nsurlsession上傳 發布:2025-02-06 06:55:18 瀏覽:336
亞洲十帥exo訪問 發布:2025-02-06 06:51:40 瀏覽:98
編程一首詩 發布:2025-02-06 06:45:04 瀏覽:528
驚聲尖笑5下載ftp 發布:2025-02-06 06:33:16 瀏覽:528
共享文件夾讓輸入密碼 發布:2025-02-06 06:32:28 瀏覽:970
收銀伺服器響應出錯什麼意思 發布:2025-02-06 06:24:43 瀏覽:607
sql用戶授權 發布:2025-02-06 06:24:42 瀏覽:677
蘋果手機相冊顯示正在上傳 發布:2025-02-06 06:05:43 瀏覽:542
hadoop下載文件夾 發布:2025-02-06 06:05:08 瀏覽:187