日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

go语言接收html上传的文件,html5原生js拖拽上传(golang版)

發布時間:2025/3/20 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 file

uuz.ο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版)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。