C# 在上传文件时,我是否可以继续浏览网站?
背景: 我正在为我的计算机科学系做一个本科研究项目。该项目是生物系的一个网站,其主要特点是生物系学生能够上传自己的C# 在上传文件时,我是否可以继续浏览网站?,c#,asp.net,ajax,file-upload,C#,Asp.net,Ajax,File Upload,背景: 我正在为我的计算机科学系做一个本科研究项目。该项目是生物系的一个网站,其主要特点是生物系学生能够上传自己的.xml文件,然后使用Matlab在服务器端为他们建立*模型 前端在ASP.NET、javascript和C#环境中。我与这个项目的一点联系就是我对这些系统、工具和语言的所有知识 问题: 我前面提到的.xml文件可能需要数小时才能上传和构建。我的教授希望用户能够使用已经完成的模型继续页面,同时将新模型发送到后台,用户在完成后收到电子邮件。我找到了发送电子邮件的材料,但没有找到继续页面
.xml
文件,然后使用Matlab在服务器端为他们建立*模型
前端在ASP.NET、javascript和C#环境中。我与这个项目的一点联系就是我对这些系统、工具和语言的所有知识
问题:
我前面提到的.xml
文件可能需要数小时才能上传和构建。我的教授希望用户能够使用已经完成的模型继续页面,同时将新模型发送到后台,用户在完成后收到电子邮件。我找到了发送电子邮件的材料,但没有找到继续页面的材料
我听说了一些关于使用AJAX加载页面的事情?理想情况下,您需要设置某种异步处理。我个人喜欢使用和RabbitMQ进行异步和消息传递。在页面上放置文件上载控件
<asp:FileUpload ID="FileUpload1" runat="server"/>
看看是否可以将类似的上传插件集成到项目中(需要jQuery)
$(文档).ready(函数()
{
$(“#”)上传(
{
“swf”:“Scripts/uploadify.swf”,
'uploader':'Handler.ashx',
“自动”:正确,
“buttonText”:“选择文件”
});
});
如果不能做到这一点,则需要了解ajax的工作原理
Ajax通常使用XMLHttpRequest,这不允许您编码本地文件并将其发送到服务器。您可以使用Flash swf处理同一页面上的上载,也可以使用目标为不可见1x1 iframe的表单
我在这个博客上找到了关于的代码,我想打开一个小的I-frame,它实际上可以上传,可以让你的当前页面继续工作 因此,在当前页面上,您需要输入文件位置、文件名和所有内容,然后在i-frame中打开一个新页面。让i-frame知道源文件/文件夹、目标文件/文件夹,并让它在后台工作。因此,现在您的当前页面可以继续工作了
希望有帮助。使用无头Java上传小程序。 在iFrame中加载文件传输小程序,让用户启动文件传输,当用户想要浏览网站的其余部分时,不要重新加载包含Java小程序(将上载文件)的iFrame。传输完成后,执行JAvaScript调用以关闭iframe 下面的示例使用FileCatalyst提供的Java小程序,但这种想法实际上适用于任何其他Java FTP小程序或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>
var browsePath=“”;
函数browseandd(){
browsePath=document.FileCatalyst.browseLive(true);
}
函数上传(){
document.FileCatalyst.uploadLive();
}
函数clearQueue(){
document.FileCatalyst.clearQueue();
}
抱歉没有缩进,我发现用于插入代码的stackoverflow标记对用户不太友好。为了澄清,您说“上传和构建可能需要几个小时”。我认为上传部分很快,构建需要很长时间?是的。按照现在的设置方式,一个小圆圈会弹出,并在整个构建过程中旋转。
<script type = "text/javascript">
$(document).ready(function()
{
$("#<%=FileUpload1.ClientID %>").uploadify(
{
'swf': 'Scripts/uploadify.swf',
'uploader': 'Handler.ashx',
'auto': true,
'buttonText': 'Select File(s)'
});
});
</script>
<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>