如何发送和接收文件?

如何发送和接收文件?

问题描述:

我想以下类型的功能
如何发送和接收文件?

有两个用户AB两者都访问同一页面
此页面上有一个按钮(发送文件)。
A点击按钮的Open Dialog框应出现
AOpen Dialog框中选择一个文件,那么应该有一个链接出现在B的页面包含文件名
B点击了链接,一个SaveAs对话框应该出现,给后名称和路径文件下载应该开始。

在这方面的任何形式的帮助将不胜感激!

打开对话框中来达到的与HTML输入:<input type="file">

另存为对话框使用html定位点:<a href="www.myserver.com/download.aspx?filename='the file'">

用户A选择文件后,您可以使用AJAX或onsubmit表单通过您创建的upload.aspx页面上载文件。

在用户B的机器上,您使用AJAX调用updatefilelist.aspx页面,该页面返回可用文件列表。一旦用户A的新文件上传并保存在服务器上,用户B的AJAX调用updatefilelist.aspx的下一个ping将更新其屏幕上显示的列表以包含新文件。

点击该文件可调用所需文件名的download.aspx页面 - 您需要在此处设置Response.ContentTypeResponse.AddHeader("Content-Disposition", "attachment:filename=""" & IO.Path.GetFileName(Request.QueryString("filename")) & """")。保存为对话框然后会自动弹出。

+0

你的意思是上传文件到服务器,然后'B'会从服务器上下载。 – jams 2011-05-16 13:41:22

+0

是的,任何解决方案都需要A:上传到服务器,然后B:从服务器下载。没有办法在A和B之间创建某种连接,而不使用服务器作为中介。 – ic3b3rg 2011-05-16 15:11:30

那么这个页面可以分成两部分:一个文件上传控件,另一个通过AJAX每3-4秒轮询一次,看看是否有新文件。

方“A”有一个标准的文件上传控制,并使用标准的.NET方式保存上传的文件(请参阅FileUpload.PostedFile.SaveAs(路径),容易的东西)。文件上传完成后,刷新此页面。

Side“B”是一个从AJAX调用,XML,JSON或纯文本中获取其内容的div。有一个叫做“link.aspx”的AJAX页面,可以以任何你想要的格式来回放内容。

对于链接,如果你想强制“下载”窗口,那么文件需要是在浏览器中不能正常显示的类型,或者你需要使用另一个aspx页面来提供文件并强制一个对话框保存或打开。

aspx页面将被称为“file.aspx”,你可以传入查询字符串参数(“id”或其他)来告诉它你想要什么文件。你的这个页面背后的代码会找出你从查询字符串PARAM所需要的文件,然后将担任出来的文件:

Response.AddHeader("Content-Disposition", "attachment; filename=" + file.fileName); 
Response.AddHeader("Content-Length", file.Length.ToString()); 
Response.ContentType = "image/jpeg"; // you gotta figure out the content type of the file here though. This is just the one for JPEGS. 

byte[] buffer = new byte[file.Length]; 
dl.Read(buffer, 0, (int)file.Length); 

Response.BinaryWrite(buffer); 
Response.End();