好吧,我在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());
}
答案 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">...