我正在使用telerik控件上传照片并将其存储在我项目的文件夹中。
我写了代码来上传图片并将其存储在'images'文件夹中 它有效,但它改变了上传文件的格式。它将png / jpg照片放置为Telerik.Web.UI.AsyncUploadedFile
而不是放入图像。这是我的aspx页面
<asp:Label ID="PhotoLabel" runat="server" Text="Upload a photo"></asp:Label>
<telerik:RadAsyncUpload RenderMode="Lightweight" runat="server" ManualUpload="false" ID="AsyncUpload1" MultipleFileSelection="Disabled" OnFileUploaded="AsyncUpload1_FileUploaded"></telerik:RadAsyncUpload>
<telerik:RadButton runat="server" Text="Sibmit new photos" OnClick="UploadFiles_Click"></telerik:RadButton>
<asp:Label ID="error" runat="server" Text="" Visible="false"></asp:Label>
我的代码背后
protected void UploadFiles_Click(object sender, EventArgs e)
{
try
{
if(AsyncUpload1.UploadedFiles.Count > 0)
{
foreach (UploadedFile file in AsyncUpload1.UploadedFiles)
{
string targetFolder = HttpContext.Current.Server.MapPath("~/images");
string targetPath = Path.Combine(targetFolder, file.ToString());
file.SaveAs(targetPath);
}
error.Text = "File Uploaded";
error.Visible = true;
}
else
{
error.Text = "no files to upload";
error.Visible = true;
return;
}
}
catch(Exception ex)
{
error.Text = ex.ToString();
error.Visible = true;
}
}
编辑:好的,所以我弄清楚我的问题是什么以及如何解决它。我更改了一行代码
string targetPath = Path.Combine(targetFolder, file.GetName());
它有效。我希望这有助于其他人。
答案 0 :(得分:0)
更改
string targetPath = Path.Combine(targetFolder, file.ToString());
到
string targetPath = Path.Combine(targetFolder, file.GetName());
解决了我的问题。