C# 使用多部分/表单数据上传文件

C# 使用多部分/表单数据上传文件,c#,asp.net,.net,C#,Asp.net,.net,我用这个代码上传了一个文件,但它没有上传 var content = new MultipartFormDataContent(); var fileContent = new ByteArrayContent(System.IO.File.ReadAllBytes(filePath)); fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") {

我用这个代码上传了一个文件,但它没有上传

var content = new MultipartFormDataContent();

var fileContent = new ByteArrayContent(System.IO.File.ReadAllBytes(filePath));

fileContent.Headers.ContentDisposition =
    new ContentDispositionHeaderValue("attachment")
    {
        FileName = Path.GetFileName(filePath)
    };

content.Add(fileContent);
var responce = client.PostAsync(queryString.ToString(), content).Result;
试试这个

<form id="form1" runat="server">
<asp:FileUpload id="FileUploadControl" runat="server" />
<asp:Button runat="server" id="UploadButton" text="Upload" onclick="UploadButton_Click" /> <br /><br />
<asp:Label runat="server" id="StatusLabel" text="Upload status: " />
</form>

protected void UploadButton_Click(object sender, EventArgs e)
{
if(FileUploadControl.HasFile)
{
    try
    {
        string filename = Path.GetFileName(FileUploadControl.FileName);
        FileUploadControl.SaveAs(Server.MapPath("~/") + filename);
        StatusLabel.Text = "Upload status: File uploaded!";
    }
    catch(Exception ex)
    {
        StatusLabel.Text = "Upload status: The file could not be uploaded. The following error occured: " + ex.Message;
    }
}
}



受保护的无效上载按钮\u单击(对象发送者,事件参数e) { if(FileUploadControl.HasFile) { 尝试 { 字符串filename=Path.GetFileName(FileUploadControl.filename); FileUploadControl.SaveAs(Server.MapPath(“~/”)+文件名); StatusLabel.Text=“上载状态:文件已上载!”; } 捕获(例外情况除外) { StatusLabel.Text=“上载状态:无法上载文件。出现以下错误:“+ex.Message; } } }

状态消息应该清楚地表明它们都是关于什么的,并且您可以更改它们以满足您的需要

试试这段代码。它工作正常。只需在解决方案资源管理器中创建一个名为“Upload”的文件夹,即可上载文件

在您的aspx页面中

<asp:FileUpload runat="server" ID="FileUploadContacts" Width="300px" />
<asp:Button runat="server" ID="btnUpload" Text="Upload" OnClick="btnUpload_OnClick" />

您遇到了什么错误?不上传是什么意思?客户端是否没有收到帖子,或者内容是否为空/空?它适用于所有类型的文件。但是您可以通过添加一个条件来修改它,只允许上传特定类型的文件。
protected void btnUpload_OnClick(object sender, EventArgs e)
{
    try
    {
        if (FileUploadContacts.HasFile)
        {
            FileUploadContacts.SaveAs(Server.MapPath("Uploads//") + FileUploadContacts.FileName);
            this.lblMessage.Text = "File uploaded Successfully!>";
        }
        else
        {
            this.lblMessage.Text = "File not uploaded!>";
        }
    }
    catch (Exception ex)
    {
        Logger.WriteException(ex);
    }
}