ASP.NET: 图片URL正确,但图片不显示
ASP.NET: Image URL is correct, but image does not display
我知道之前有人问过这个问题,因为这是一个菜鸟问题,但这里的其他答案并没有为我澄清。我上传文件然后提供预览。我上传按钮的点击事件是这样的:
protected void UploadFile (object sender, EventArgs e) {
string folderPath = Server.MapPath ("~/Uploads/");
// If folder does not exist, create it.
if (!Directory.Exists (folderPath))
Directory.CreateDirectory (folderPath);
//Save the File to the Directory (Folder).
FileUpload.SaveAs (folderPath + Path.GetFileName (FileUpload.FileName));
//Display the Picture in Image control.
imgItem.ImageUrl = folderPath + Path.GetFileName (FileUpload.FileName);
}
上传正常,但图片控件(imgItem)不显示图片。当我追踪它时,URL 看起来很完美。 URL 是:
"C:\MyStuff\Source\Inventory\Inventory\UserInterface\Uploads\sample.jpg"
那应该有用。我到底做错了什么?
编辑:我觉得这根本不是一个好的解决方案,但我发现如果我将最后一行更改为以下内容,程序会按预期工作:
imgItem.ImageUrl = "~/Uploads/" + Path.GetFileName (FileUpload.FileName);
没有人有更简洁、更简单的解决方案吗?
嗯,
"C:\MyStuff\Source\Inventory\Inventory\UserInterface\Uploads\sample.jpg"
实际上是文件路径,而不是URL。由于您使用 "URL" 这个词,我假设您正在构建一个网站。这意味着您需要一个合适的 URL(例如 http(s)://yourdomain.com/Source/Inventory/..../sample.jpg)
如果您不知道文件路径的 url 是什么,您可以使用 IIS 中的虚拟文件夹来映射它。 https://docs.kentico.com/k11/installation/deploying-kentico-to-a-live-server/creating-virtual-directories-and-application-pools-in-iis-7-5-and-7-0
imgItem.ImageUrl = "~/上传/" + Path.GetFileName (FileUpload.FileName);
我知道之前有人问过这个问题,因为这是一个菜鸟问题,但这里的其他答案并没有为我澄清。我上传文件然后提供预览。我上传按钮的点击事件是这样的:
protected void UploadFile (object sender, EventArgs e) {
string folderPath = Server.MapPath ("~/Uploads/");
// If folder does not exist, create it.
if (!Directory.Exists (folderPath))
Directory.CreateDirectory (folderPath);
//Save the File to the Directory (Folder).
FileUpload.SaveAs (folderPath + Path.GetFileName (FileUpload.FileName));
//Display the Picture in Image control.
imgItem.ImageUrl = folderPath + Path.GetFileName (FileUpload.FileName);
}
上传正常,但图片控件(imgItem)不显示图片。当我追踪它时,URL 看起来很完美。 URL 是:
"C:\MyStuff\Source\Inventory\Inventory\UserInterface\Uploads\sample.jpg"
那应该有用。我到底做错了什么?
编辑:我觉得这根本不是一个好的解决方案,但我发现如果我将最后一行更改为以下内容,程序会按预期工作:
imgItem.ImageUrl = "~/Uploads/" + Path.GetFileName (FileUpload.FileName);
没有人有更简洁、更简单的解决方案吗?
嗯,
"C:\MyStuff\Source\Inventory\Inventory\UserInterface\Uploads\sample.jpg"
实际上是文件路径,而不是URL。由于您使用 "URL" 这个词,我假设您正在构建一个网站。这意味着您需要一个合适的 URL(例如 http(s)://yourdomain.com/Source/Inventory/..../sample.jpg)
如果您不知道文件路径的 url 是什么,您可以使用 IIS 中的虚拟文件夹来映射它。 https://docs.kentico.com/k11/installation/deploying-kentico-to-a-live-server/creating-virtual-directories-and-application-pools-in-iis-7-5-and-7-0
imgItem.ImageUrl = "~/上传/" + Path.GetFileName (FileUpload.FileName);