上传的文件格式已更改

时间:2016-02-24 16:18:07

标签: c# asp.net telerik

我正在使用telerik控件上传照片并将其存储在我项目的文件夹中。

Solution Explorer

我写了代码来上传图片并将其存储在'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());

它有效。我希望这有助于其他人。

1 个答案:

答案 0 :(得分:0)

更改

string targetPath = Path.Combine(targetFolder, file.ToString());

string targetPath = Path.Combine(targetFolder, file.GetName());

解决了我的问题。