AJAX資料互動及檔案上傳功能
一、檔案下載
正常情況下,要檔案壓縮
<a href = "test.zip">點選就下載</a>
沒有壓縮的話會直接開啟
<a href = "test.txt">點選就下載</a>
let btn = document.querySelector("input");
btn.onclick = function(){
let link = document.createElement("a");
link.download = "檔案.txt";
link.href = "test.txt";
link.click();
}
//演示檔案操作功能
const str = "hello";
downLoadFile("test.doc", str);
function downLoadFile(fileName, content){
const blob = new Blob([content], {type:"application/msword"});
const url = window.URL.createObjectURL(blob);
const link = document.createElement("a");
link.download = fileName;
link.href = url;
link.click();
}
二、請求php資源
跨域請求都是後端解決的,前端只是通過各種方式去發起請求
let xhr = new XMLHttpRequest();
xhr.onload = function(){
if(xhr.readyState == 4 && xhr.status == 200){
console.log(xhr.response);
}
}
xhr.open("get", "data.php", true);
xhr.send();
<?php
header('Access-Control-Allow-Origin:*');
$arr = array(
array(
'id' => 1,
'name' => '張三',
'age'=>20
)
);
echo json_encode($arr);
三、jsonp
本質就是返回函式的呼叫
function myData(data){
console.log(data);
}
createJsonp();
function createJsonp(){
let s = document.createElement("script");
s.src = "jsonp.php?callback=myData";
document.body.appendChild(s);
}
<?php
header('Access-Control-Allow-Origin:*');
$jsonp = $_GET['callback'];
$arr = array('張三', 18);
echo $jsonp.'('.json_encode($arr).')';
四、upload
let ipt = document.querySelector("input");
let div = document.querySelector("div");
let p = document.querySelector("p");
ipt.addEventListener('change', function(){
//console.log(this.value);//只是字串,不代表路徑,表示value
if(this.value){
let oFile = this.files[0];
uploadFiles(oFile);
this.value = "";
}
})
div.addEventListener("dragover", function(e){
e.preventDefault();
e.stopPropagation();
})
div.addEventListener("drop", function(e){
e.preventDefault();
e.stopPropagation();
let oFile = e.dataTransfer.files[0];
uploadFiles(oFile);
})
//既可以通過表單控制元件,又可以通過H5拖拽的實現圖片預覽
function uploadFiles(oFile){
let blob = new Blob([oFile]); //第一個引數一定是一個陣列,第二個是mime型別
let url = window.URL.createObjectURL(blob);
let img = new Image();
img.width = 300;
img.height = 150;
img.src = url;
img.onload = function(){
document.body.appendChild(this);
}
//檔案上傳功能,需要後端配置,前端只是傳送資料
const xhr = new XMLHttpRequest();
xhr.onload = function(){
}
xhr.upload.onprogress = function(e){
let scale = e.loaded/e.total;
p.style.width = scale*window.innerWidth + "px";
}
const oFD = new FormData();
oFD.append("file", oFile);
xhr.open("post", "upload.php", true);
xhr.send(oFD);
}
<?php
$myFile = $_FILES['file'];
$myName = $myFile['name'];
$myPath = 'upload'.$myName;
move_uploaded_file($myFile['tmp_name'], $myPath);
相關文章
- SpringMVC(四)上傳檔案、json資料互動SpringMVCJSON
- Ajax 之檔案上傳
- ajax與XML檔案互動XML
- ajax實現檔案上傳
- ajax上傳檔案的請求
- Ajax 資料非同步互動非同步
- 前後端資料互動(三)——ajax 封裝及呼叫後端封裝
- 利用FormData物件實現AJAX檔案上傳功能及後端實現ORM物件後端
- jQuery+ASP.NET的AJAX檔案上傳jQueryASP.NET
- Android–okhttp與php互動,檔案上傳下載AndroidHTTPPHP
- FTP MPUT 關閉互動同時上傳多檔案FTP
- 檔案上傳和下載功能
- AjaxFileUpload檔案上傳元件(php+jQuery+ajax)元件PHPjQuery
- golang實現檔案上傳並轉存資料庫功能詳解Golang資料庫
- spring4.3.5檔案上傳功能Spring
- AJAX資料互動中的同步非同步非同步
- http不使用Form表單傳送檔案資料和非檔案資料(上傳篇)HTTPORM
- php檔案上傳之多檔案上傳PHP
- FTP非互動方式檔案傳輸(轉)FTP
- jqm檔案上傳,上傳圖片,jqm的表單操作,jqm的ajax的使用,jqm檔案操作大全,檔案操作demo
- 【node】檔案上傳功能簡易實現
- 自定義檔案上傳功能實現方法
- 利用ftp自動上傳檔案FTP
- Netty接收HTTP檔案上傳及檔案下載NettyHTTP
- 檔案上傳踩坑記及檔案清理原理探究
- 單個檔案上傳和批量檔案上傳
- 支援多檔案上傳,預覽,拖拽,基於bootstrap的上傳外掛fileinput的ajax非同步上傳boot非同步
- Java檔案上傳功能程式碼——普遍適用Java
- 檔案上傳
- Web上傳檔案的原理及實現Web
- winfrom上傳多個檔案到指定資料夾
- JS實現檔案自動上傳JS
- SpringMVC 單檔案上傳與多檔案上傳SpringMVC
- 基於Ajax的formData圖片和資料上傳ORM
- Asp.net WebApi 傳遞json資料以及上傳檔案ASP.NETWebAPIJSON
- 前端筆記之伺服器&Ajax(上)伺服器&PHP&資料互動&HTTP前端筆記伺服器PHPHTTP
- jquery ajax file upload NET MVC 無重新整理檔案上傳jQueryMVC
- ajax利用FormData、FileReader實現多檔案上傳php獲取ORMPHP