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 封裝及呼叫後端封裝
- .NET Core 如何上傳檔案及處理大檔案上傳
- 【ajax】 html js jquery ajax上傳檔案【一眼就會】【實用】HTMLJSjQuery
- golang實現檔案上傳並轉存資料庫功能詳解Golang資料庫
- http不使用Form表單傳送檔案資料和非檔案資料(上傳篇)HTTPORM
- Netty接收HTTP檔案上傳及檔案下載NettyHTTP
- 自定義檔案上傳功能實現方法
- 【node】檔案上傳功能簡易實現
- SpringBoot實現檔案上傳功能詳解Spring Boot
- 使用Spring Boot實現檔案上傳功能Spring Boot
- 檔案上傳踩坑記及檔案清理原理探究
- jquery ajax file upload NET MVC 無重新整理檔案上傳jQueryMVC
- Asp.net WebApi 傳遞json資料以及上傳檔案ASP.NETWebAPIJSON
- 單個檔案上傳和批量檔案上傳
- 解決ajax傳送Formdata資料包含檔案和text資料,spring後臺無法通過MultipartFile拿到檔案ORMSpring
- 基於SpringWeb MultipartFile檔案上傳、下載功能SpringWeb
- 檔案上傳
- Java大檔案上傳、分片上傳、多檔案上傳、斷點續傳、上傳檔案minio、分片上傳minio等解決方案Java斷點
- 資料互動——Promise、Ajax、axios和fetch的優缺點PromiseiOS
- web互動方式---ajaxWeb
- 檔案上傳之三基於flash的檔案上傳
- 前端筆記之伺服器&Ajax(上)伺服器&PHP&資料互動&HTTP前端筆記伺服器PHPHTTP
- SpringMVC【引數繫結、資料回顯、檔案上傳】SpringMVC
- ASP.NET Core 上傳檔案到共享資料夾ASP.NET
- 【Git/Github】向已有倉庫上傳檔案/資料夾Github
- 前端大檔案上傳/分片上傳前端
- MinIO上傳和下載檔案及檔案完整性校驗.
- PHP上傳檔案PHP
- 檔案上傳概述
- ajaxfileupload 檔案上傳
- Flask——檔案上傳Flask
- Linux上傳檔案Linux
- 檔案上傳漏洞
- minio上傳檔案