如何将文件上传到另一个aspx文件?

时间:2010-12-18 18:47:09

标签: .net asp.net

好吧,我在domain1工作。我需要将文件上传到domain2。在我在domain1的aspx中,我(在主要之外):

<div id="divCurriculo">
    <form id="frmCurric" enctype="multipart/form-data" action="http://reports.programacontactosonae.com/uploadcv.aspx" method="post">
        <input type="hidden" name="userid" value="284" />
    <table>
        <tr>

            <td class="first">
                <label>Currículo</label>
            </td>
            <td>
                <input type="file" id="filecv" style="display:inline-block;" />
                <input type="submit" value="Enviar" style="width:70px;display:inline-block;" />
            </td>       
        <tr>            
    </table>

    </form>
</div>

那么,我在domain2的接收文件中需要什么来获取文件?这就是我所拥有的:

protected void Page_Load(object sender, EventArgs e)
{
      string userid = Request.Form["userid"];
      Response.Write(userid + "<br />"); // i catch, successfully, the value in the hiddenfield

      HttpPostedFile file = Request.Files[0];//here i get an error cause it can't find any file
      Response.Write(file.ToString());            
}

3 个答案:

答案 0 :(得分:2)

希望这很简单,但请尝试将enctype="multipart/form-data"添加到您的form代码中:

<form action="www.domain2.com/upload.aspx" method="post" enctype="multipart/form-data">
   <input type="hiden" id="userid" value="12345" />
   <input type="file" id="curriculo" />
   <input type="submit" id="submit"/>
</form>

答案 1 :(得分:2)

除了有关缺少enctype属性的其他答案之外,您的代码非常脆弱;您应该检查以确保在尝试访问Request.Files集合之前至少存在一个文件,并在文件不存在时显示错误消息,让他们知道再试一次。否则,忘记选择文件的用户将收到一条非常无用的错误消息(您现在看到的同一个消息)

否则,我将假设/希望您正在安全地验证/清理事务 - 例如不信任提交的用户标识值,并验证提交的内容是否有危险。

答案 2 :(得分:1)

看起来你只是错过了enctype;在为 ,添加一个属性:

 <form ...  enctype="multipart/form-data">...