如何上传文件到url
本文关键字:url 文件 | 更新日期: 2023-09-27 18:03:15
我正在尝试从浏览器上传文件并将其复制到URL文件夹
使用升c
(我有这个文件夹的所有权限)
我没有问题上传文件到我的硬盘
:
HttpPostedFileBase myfile;
var path = Path.Combine(Server.MapPath("~/txt"), fileName);
myfile.SaveAs(path);
我试着把它上传到这样的URL,但我得到一个异常
HttpPostedFileBase myfile;
var path =VirtualPathUtility.ToAbsolute("http://localhost:8080/game/images/"+fileName);
myfile.SaveAs(path);
例外:
System.ArgumentException: The relative virtual path 'http:/localhost:8080/game/images/ a baby bottle. Jpg' is not allowed here.
In - System.Web.VirtualPath.Create (String virtualPath, VirtualPathOptions
无法将文件上传到远程位置。如果您希望此工作,您将不得不修改远程服务器,使其接受文件上传,就像您的服务器接受文件上传,然后使用WebClient
向它发送HTTP请求一样。您不能使用SaveAs
方法,因为它需要一个本地路径。
你可以有以下的控制器动作:
[HttpPost]
public ActionResult Upload(HttpPostedFileBase myFile)
{
if (myFile != null && myFile.ContentLength > 0)
{
var fileName = Path.GetFileName(myFile.FileName);
var path = Path.Combine(Server.MapPath("~/App_Data"), fileName);
myFile.SaveAs(path);
}
...
}
和具有文件输入的相应表单:
@using (Html.BeginForm("Upload", null, FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<input type="file" name="myFile" />
<button type="submit">Click this to upload the file</button>
}
您应该使用Server.MapPath("Path")
var path = Server.MapPath("~/images/") + fileName);
myfile.SaveAs(path);