首頁 > web前端 > js教程 > js動態建立上傳表單透過iframe模擬Ajax實現無刷新_javascript技巧

js動態建立上傳表單透過iframe模擬Ajax實現無刷新_javascript技巧

WBOY
發布: 2016-05-16 16:59:02
原創
837 人瀏覽過
複製程式碼 程式碼如下:

<script>; <BR>window.onload=function(){ <BR>upfile('file.php'); <BR>} <br><br><BR>/* <BR>** url 路徑<BR>**/ <BR>function upfile(url){ <BR>//建立iframe <BR>var iframe = document.createElement("iframe"); <BR>document.body.appendChild(iframe); <BR>iframe.id = 'iframeName'; <BR>iframe.name = 'iframeName'; <BR>iframe.style.display = '無'; <BR>//建立表單<BR>var TurnForm = document.createElement("form"); <BR>document.body.appendChild(turnForm ); <BR>turnForm.method = 'post'; <BR>turnForm.action = url; <BR>turnForm.encoding = "multipart/form-data"; <BR>turnForm.name = 'formNamer'; <BR>turnForm.target = 'iframeName'; <BR>//建立隱藏表單<BR>var newElement = document.createElement("input"); <BR>newElement.setAttribute("name","inputname"); <BR>newElement.setAttribute("name","inputname"); <BR>newElement.setAttribute("name","inputname"); <BR>newElement.setAttribute("類型","檔案"); <BR>newElement.setAttribute("value",''); <br>turnForm.appendChild(newElement); <br>} <BR><BR>/ /表單提交<BR>function formSubmit() { <BR>//var res = document.formNamer.inputname.value; <br>document.formNamer.submit(); <br>} <BR><BR><BR>//submit();傳回值<BR>函數回呼(結果){ <BR>//window.parent.document.getElementById('iframeName').style.display = 'block'; 透過iframe查看後台資料<BR>if(result[' error'] == 0){ <BR>document.getElementById('test').src= result['img'][1] '/' result[' img'][2]; <BR>}else if (結果['錯誤'] == 1){ <BR>alert(結果['meg']); <BR>}else if(結果['錯誤'] == 2){ <BR>alert(結果[ 'meg']); <BR>}else if(結果['錯誤'] == 3){ <BR>alert(結果['meg']); <BR>}else if(結果['錯誤'] == 4){ <BR>alert(結果['meg']); <br>}其他{ <br>alert(結果['meg']); <br>} <br><br>} <br><BR></script>
上傳
js動態建立上傳表單透過iframe模擬Ajax實現無刷新_javascript技巧
file.php 複製程式碼
程式碼如下:

header("content-Type: text/html; charset=Utf-8");

if(@is_uploaded_file($_FILES['inputname'][ 'tmp_name'])){

$f = $_FILES['inputname'];
$name = $f["name"];
$size = $f["size" ];
$type = $f["type"];
$fileName = $f["tmp_name"];

switch ($type) {
case 'image/jpg ':$okType = true;
休息;

case 'image/jpeg':$okType = true;
休息;

case 'image/png':$okType = true;
休息;

case 'image/gif':$okType = true;
休息;
}

if($okType){
$error = $f["error"];
echo '檔案名稱:'.$name.'
';
echo '檔案類型:'.$type.'
';
echo '檔案大小:'.round($size/1024).'K
';
echo '檔案暫時存放路徑:'.$fileName.'
';

$fileDir = 目錄名(__FILE__).'/img/upfile'.time().$name;
$img =explode('/',$fileDir);

move_uploaded_file($fileName , $fileDir);

$data = array();
$data['img'] = $img;
$data['name'] = $name;
$ data['type'] = $type;
$data['size'] = $size;
$data['檔名'] = $檔名;
$data['fileDir'] = $fileDir;

if($error==0){
/*echo '上傳成功! ';
echo '預覽:';
echo "js動態建立上傳表單透過iframe模擬Ajax實現無刷新_javascript技巧
";
echo '檔案名稱'.$img[2];*/
$data['error'] = 0;
exit("<script>parent.callback(".json_encode($data).");</script>");

}elseif($error==1){
$ data['error'] = 1;
$data['meg'] = '超過了檔案大小,在php.ini檔案中設定';
exit("<script>parent.callback(". json_encode($data).");</script>");
}elseif ($error==2){
$data['error'] = 2;
$data['meg '] = '超過了檔案的大小MAX_FILE_SIZE選項指定的值';
exit("<script>parent.callback(".json_encode($data).");</script>");
}elseif ($error==3){
$data['error'] = 3;
$data['meg'] = '檔案只有部分已上傳';
exit("<script>parent.callback(".json_encode($data).");</script>");
}elseif ($error==4){
$data['error'] = 4;
$data['meg'] = '沒有檔案上傳';
exit("<script>parent.callback(".json_encode($data).");</script>");
}else{
$data['meg'] = '上傳檔案大小為0';
exit("<script>parent.callback(".json_encode($data).");</script>");
}

}
}其他{
$data['error'] = 4;
$data['meg'] = '沒有檔案上傳';
exit("<script>parent.callback(".json_encode($data).");</script>");
}
? >
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板