Javascript 通过jqueryajax发送文件流
我想做什么: 将文件上载到autoCAD server并显示从服务器接收的URN 我目前正在做的事情:Javascript 通过jqueryajax发送文件流,javascript,c#,jquery,asp.net,ajax,Javascript,C#,Jquery,Asp.net,Ajax,我想做什么: 将文件上载到autoCAD server并显示从服务器接收的URN 我目前正在做的事情: <div> <form id="form1" runat="server"> <div> <asp:FileUpload ID="FileUpload1" runat="server" /> <br/> <asp:Button class=" btn btn-primary
<div>
<form id="form1" runat="server">
<div>
<asp:FileUpload ID="FileUpload1" runat="server" />
<br/>
<asp:Button class=" btn btn-primary col-md-2" ID="btnUpload" runat="server" Text="Upload file" onclick="btnUpload_Click" />
</div>
</form>
<textarea class="form-control" readonly="readonly" rows="5" id="txt_resUploadFile"><%= FileURN %></textarea>
protected void btnUpload_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
HttpPostedFile myFile = FileUpload1.PostedFile;
//send myFile to autoCAD server and get result from that server....
}
FileURN = "The Result";
使用
控件上载文件
使用以下命令从代码隐藏获取上载的文件对象:HttpPostedFile myFile=FileUpload1.PostedFile代码>
代码隐藏将返回一个名为FileURN
的字符串,它将使用以下命令显示在文本区域中:
问题:
<div>
<form id="form1" runat="server">
<div>
<asp:FileUpload ID="FileUpload1" runat="server" />
<br/>
<asp:Button class=" btn btn-primary col-md-2" ID="btnUpload" runat="server" Text="Upload file" onclick="btnUpload_Click" />
</div>
</form>
<textarea class="form-control" readonly="readonly" rows="5" id="txt_resUploadFile"><%= FileURN %></textarea>
protected void btnUpload_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
HttpPostedFile myFile = FileUpload1.PostedFile;
//send myFile to autoCAD server and get result from that server....
}
FileURN = "The Result";
每次单击上载按钮时,html页面都会刷新。我知道当访问服务器时,整个页面会被刷新。所以我想用AJAX来实现这一点。但很快我意识到AJAX只调用Webmethod,它必须是静态的。因为HttpPostedFile myFile=FileUpload1.PostedFile
不再以静态方式工作,如何获取上载的文件流
代码段:
html:
<div>
<form id="form1" runat="server">
<div>
<asp:FileUpload ID="FileUpload1" runat="server" />
<br/>
<asp:Button class=" btn btn-primary col-md-2" ID="btnUpload" runat="server" Text="Upload file" onclick="btnUpload_Click" />
</div>
</form>
<textarea class="form-control" readonly="readonly" rows="5" id="txt_resUploadFile"><%= FileURN %></textarea>
protected void btnUpload_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
HttpPostedFile myFile = FileUpload1.PostedFile;
//send myFile to autoCAD server and get result from that server....
}
FileURN = "The Result";
您可以尝试使用asp.net AJAX。看看这个,你能更具体地说你想实现什么吗?如果你仍然使用c#来获取流,你可以遵循这个答案Hi@Developer,首先感谢你的编辑建议。我的最终目标是向autoCAD server发送一个PUT RestRequest,requestBody参数携带我从asp:FileUpload
控件上载的文件的filestream数据(字节数组)。我在这里遇到的问题是,如果我使用C#onClick函数,当函数完成时,将调用整页刷新,这是我不想要的。使用C#onClick,您无法避免回发。但是,您可以使用updatepanel吗?或者我认为客户端Ajax解决方案非常适合这种情况。使用(var client=new System.Net.WebClient()){client.UploadData(地址,“PUT”,数据);}你可以尝试使用asp.net AJAX。看看这个,你可以更具体地说你想实现什么?如果你仍然使用c#来获取流,你可以遵循这个答案Hi@Developer,首先感谢编辑建议。我的最终目标是向autoCAD server发送一个PUT RestRequest,requestBody参数携带文件流数据(字节数组)我从asp:FileUpload
控件上传的文件。我这里的问题是,如果我使用C#onClick函数,当函数完成时,将调用一个完整的页面刷新,这是我不想要的。有了C#onClick,你无法避免发回。但是你能使用updatepanel吗?或者我认为客户端Ajax解决方案会很适合对于这种情况,使用(var client=new System.Net.WebClient()){client.UploadData(地址,“PUT”,data);}