首页 > 解决方案 > 通过局域网接收文件时将文件保存到网络文件夹时出现问题 - Golang

问题描述

可能是一个令人困惑的标题。让我解释一下

我有一个 Go 服务器。用户可以上传照片。服务器拍摄这些照片并将其保存到指向静态文件服务器的网络文件夹中。使用 localhost 测试一切正常。但是当使用连接到 LAN 的手机时,.write([ ]bytes) 给我一个错误 Z:/xxx.jpg: The network connection was aborted by the local system。

我看到它确实收到了用 len([]bytes) 成功检查的字节。保存到本地磁盘工作正常。

我找不到发生这种情况的原因。由于程序接收到字节,它如何区分它们来自本地主机还是通过其他设备?

这是我的代码片段

file, _, err := r.FormFile("uploadFile")
defer file.Close()
fileBytes, err := ioutil.ReadAll(file)
filetype := http.DetectContentType(fileBytes)
switch filetype {
case "image/jpeg", "image/jpg":
case "image/gif", "image/png":
case "application/pdf":
    break
default:
    renderError(w, "INVALID_FILE_TYPE", http.StatusBadRequest)
    return
}
fileName := randToken(12)
fileEndings, err := mime.ExtensionsByType(filetype)
if err != nil {
    renderError(w, "CANT_READ_FILE_TYPE", http.StatusInternalServerError)
    log.Print(err)
    return
}
newPath := uploadPath + fileName + fileEndings[0]
newFile, err := os.Create(newPath)
defer newFile.Close() 
if _, err := newFile.Write(fileBytes); err != nil || newFile.Close() != nil{
    fmt.Println(err)
}
//success

标签: goservernfs

解决方案


推荐阅读