背景:
我正在为我的CS系做一个本科生研究项目。该项目是生物系的一个网站,其主要特点是学生能够上传自己的.xml文件,然后利用Matlab在服务器端为他们建立了一个*模型。
前端位于ASP.NET、javascript和C#环境中。我与这个项目的小小联系是我对这些系统、工具和语言的所有知识。
问题:
我前面提到的.xml文件可能需要几个小时才能上传和构建。我的教授希望用户能够继续使用已经完成的模型,当新模型发送到后台时,用户在完成时收到一封电子邮件。我找到了发送电子邮件的材料,但没有找到继续写这一页的材料。
我听说过使用AJAX加载页面吗?
发布于 2012-10-19 04:36:32
在页面上放置文件上载控件。
<asp:FileUpload ID="FileUpload1" runat="server"/>构建一个http处理程序来处理文件上载:
public class Handler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
HttpPostedFile fileToUpload = context.Request.Files["Filedata"];
string pathToSave = HttpContext.Current.Server.MapPath("~/Files/")
+ fileToUpload.FileName;
fileToUpload.SaveAs(pathToSave);
//Process file
}
public bool IsReusable {
get {
return false;
}
}
}看看是否可以将像上传这样的上传插件集成到项目中(需要jQuery)。
<script type = "text/javascript">
$(document).ready(function()
{
$("#<%=FileUpload1.ClientID %>").uploadify(
{
'swf': 'Scripts/uploadify.swf',
'uploader': 'Handler.ashx',
'auto': true,
'buttonText': 'Select File(s)'
});
});
</script> 如果不能这样做,则需要了解ajax是如何工作的。
Ajax通常使用XMLHttpRequest,它不允许对本地文件进行编码并将本地文件发送到服务器。
您可以使用Flash处理同一页面上的上载,也可以使用具有不可见1x1iframe目标的表单。
我在这个博客上发现了关于asp.net中的文件上载的代码
发布于 2012-10-19 05:05:24
我认为有一个小的I-帧打开,这将实际做的上传,将让您的当前页面继续工作。
因此,在当前页面上,您需要文件位置和文件名等等,然后在i帧中打开一个新页面。让我框架知道源文件/文件夹,目标文件/文件夹,并让它在后台工作。所以现在您的当前页面可以继续其工作了。
希望这能有所帮助。
发布于 2012-10-20 15:27:24
使用无头Java上传小程序。在iFrame中加载文件传输小程序,让用户启动文件传输,当用户想浏览网站的其余部分时,不要重新加载包含Java的iFrame (这将上载文件)。完成传输后,执行JAvaScript调用以关闭iframe。
下面的示例使用FileCatalyst提供的Java,但其思想实际上将与任何其他Java小程序或ActiveX一起使用。
<script>
var browsePath = "";
function browseAndAdd() {
browsePath = document.FileCatalyst.browseLive(true);
}
function upload() {
document.FileCatalyst.uploadLive();
}
function clearQueue() {
document.FileCatalyst.clearQueue();
}
</script>
<!--Uses onClick for demonstration only-->
<form id="uploadform">
<!--Launch a browse dialog and add the selected file to the queue-->
<input type=button onClick="javascript:browseAndAdd();" value="Browse and Add to Queue" />
<!-- Force upload of whatever is currently found in the transfer queue -->
<input type=button onClick="javascript:upload();" value="Upload">
<!-- Clear transfer queue (can be called only if no transfers are in progress) -->
<input type=button onClick="javascript:clearQueue();" value="Clear Queue">
</form>对于缺乏缩进表示歉意,我发现用于插入代码段的堆栈溢出标记对用户不太友好。
https://stackoverflow.com/questions/12966353
复制相似问题