1
我做了一个ListView
并创建了一个名为lnkDownload
的LinkButton
以下载图像。我的代码在localhost上正常工作,但在服务器上显示错误。“在'/'应用程序中的服务器错误。找不到路径的一部分”在ASP .NET C#
的源代码:
<asp:ListView ID="ListViewSizePrice" OnItemCommand="ListViewSizePrice_ItemCommand" runat="server">
<ItemTemplate>
<tr>
<td><%#Eval("Size") %></td>
<td><asp:RadioButton ID="RadioButtonRawYes" GroupName="RawFile" ClientIDMode="Static" CssClass="form-control" Checked="true" Text=" Yes" runat="server" Width="70px" />
<asp:RadioButton ID="RadioButtonRawNo" GroupName="RawFile" ClientIDMode="Static" CssClass="form-control" Checked="false" Text=" No" runat="server" Width="70px" />
</td>
<td><%#Eval("ImageFormat") %></td>
<td>
<asp:HiddenField ID="HiddenFieldImageUrl" Value='<%# Eval("ImageURL") %>' runat="server" Visible="false" />
<asp:LinkButton ID="lnkDownload" Text = "Download" CommandName="imageDownload" runat="server"></asp:LinkButton></td>
</td>
</tr>
</ItemTemplate>
</asp:ListView>
代码隐藏
protected void ListViewSizePrice_ItemCommand(object
sender,ListViewCommandEventArgs e)
{
if (e.CommandName == "imageDownload")
{
string ImageUrl = ((HiddenField)e.Item.FindControl("HiddenFieldImageUrl")).Value;
string FileExtension = Path.GetExtension(ImageUrl);
if (FileExtension == ".rar" || FileExtension == ".RAR")
{
Response.ContentType = "application/rar";
Response.AppendHeader("Content-Disposition", "attachment; filename=" + Path.GetFileName(ImageUrl));
string absImageUrl = Server.MapPath("Admin/" + ImageUrl);
//absImageUrl.Replace("\\", "\\");
Response.TransmitFile(absImageUrl);
Response.End();
}
else
{
Response.Redirect(Request.Url.AbsoluteUri);
}
}
}
此代码工作完全在本地主机上。但是在服务器上它显示以下错误
Server Error in '/' Application.
Could not find a part of the path 'C:\Inetpub\vhosts\basiyan.co.in\basiyan.com\Admin\ImagesUploads\Admin 16-05-2017\1\Image 10 X 10\10 X 10.rar'.
做文件路径你的文件在\ Inetpub \ vhosts \ basiyan.co.in \ basiyan.com \ Admin \ ImagesUploads \ Admin 16-05-2017 \ 1 \ Image 10 X 10 \隐藏字段中的imageURL值是什么? –
您是否验证过该字符串是否正确,因此ImageUrl中没有隐藏字符? 是否要下载该图像到客户端?或者你想从客户端上传图片吗? 它看起来像你想下载的图片,我只是要求确定。 你从哪里得到ImageURL?它可能是客户端路径的混合,被发送到服务器端的MapPath。这不会自然发挥作用。 你已经使用了哪些调试方法? –
@Ankesh库马尔:是的,文件存在于给定的URL在服务器上。其次, – Piyush