go语言接收html上传的文件,html5原生js拖拽上传(golang版)
package main
import ("fmt"
"io"
"net/http"
"os")const(
upload_pathstring = "./upload/")//上傳
func uploadHandle(w http.ResponseWriter, r *http.Request) {if r.Method == "GET"{
io.WriteString(w, tpl)
}else{//獲取文件內容 要這樣獲取
file, head, err := r.FormFile("upfile")
fmt.Println(file)if err !=nil {
fmt.Println(err)return}
defer file.Close()//創建文件
fW, err := os.Create(upload_path +head.Filename)if err !=nil {
fmt.Println("文件創建失敗")return}
defer fW.Close()
_, err=io.Copy(fW, file)if err !=nil {
fmt.Println("文件保存失敗")return}
fmt.Println(w, head.Filename+"保存成功")//io.WriteString(w, head.Filename+" 保存成功")//http.Redirect(w, r, "/success", http.StatusFound)//io.WriteString(w, head.Filename)
}
}
func main() {
fmt.Println("OK!請訪問 :8080/upload")//啟動一個http 服務器
http.HandleFunc("/upload", uploadHandle)
err := http.ListenAndServe(":8080", nil)if err !=nil {
fmt.Println("服務器啟動失敗")return}
}var tpl = `
drag fileuuz.οndragenter=function(e){
e.preventDefault();
}
uuz.οndragοver=function(e){
e.preventDefault();this.innerHTML = '請松開';
}
uuz.οndragleave=function(e){
e.preventDefault();this.innerHTML = '請拖入要上傳的文件';
}
uuz.οndrοp=function(e){
e.preventDefault();var upfile = e.dataTransfer.files[0]; //獲取要上傳的文件對象(可以上傳多個)
alert(upfile.name)
alert(upfile.type)var formdata = newFormData();var xhr = newXMLHttpRequest();
formdata.append('upfile', upfile); //設置服務器端接收的name為upfile
xhr.open("post","upload");
xhr.onreadystatechange=function(){if(this.readyState==4){if(this.status==200){ //上傳成功
var resultText = this.responseText;
console.info(resultText);//轉json
var jsonObj =JSON.parse(resultText);
console.info(jsonObj);if(jsonObj.success){//生成input表單
var fileId =createInput(jsonObj.uuid);//生成顯示名稱
appendFile1(fileId,upfile.name);
}
}else{
alert('上傳失敗,請使用另一種方式上傳');
}
}
}
xhr.send(formdata);
}
}
`
總結
以上是生活随笔為你收集整理的go语言接收html上传的文件,html5原生js拖拽上传(golang版)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html禁止文本选择,[译]用CSS来禁
- 下一篇: index.html文件作用,MEAN