我有一个Send.aspx页面,上面有一个uploadify控件。 Upload.ashx处理文件上传。
我将文件记录添加到Upload.ashx文件中的sql数据库中,我需要在完成后从Upload.aspx获取该记录的ID。
无法使用Sessions。 =(与Adobe错误有关吗?
处理此问题的最佳方法是什么?
这是uploadify控件:
<script type="text/javascript">
// <![CDATA[
var contestID = $('[id$=HiddenFieldContestID]').val();
var maxEntries = $('[id$=HiddenFieldMaxEntries]').val();
var userID = $('[id$=HiddenFieldUserID]').val();
$(document).ready(function() {
$('#fileInput').uploadify({
'uploader': '../uploadify/uploadify.swf',
'script': '../uploadify/Upload.ashx',
'scriptData': { 'contestID': contestID, 'maxEntries': maxEntries, 'userID': userID },
'cancelImg': '../uploadify/cancel.png',
'auto': true,
'multi': false,
'fileDesc': 'Image Files',
'fileExt': '*.jpg;*.png;*.jpeg',
'queueSizeLimit': 1,
'sizeLimit': 4000000,
'buttonText': 'Choose Image',
'folder': '/uploads',
'onAllComplete': function(event, queueID, fileObj, response, data) {
document.getElementById('<%= ButtonCleanup.ClientID %>').click();
}
});
});
// ]]></script>
我花了一段时间才弄明白。但回想起来它非常简单。出于这个原因,我疯了一个视频教程,以帮助新手快速入门,并了解这个真棒控制是如何工作的。
视频教程从头到尾:
http://casonclagg.com/articles/6/video-tutorial-uploadify-asp-net-c-sharp.aspx
答案 0 :(得分:1)
我在自己的脚本中注意到我使用onComplete
事件而不是onAllComplete
。除非配置选项让我失望,否则{!1}}将在每次Upload.aspx调用后触发(文件单独上传 - 也许这是可配置的)。根据文档,onComplete
实际上并没有传回请求数据(这是有意义的,因为它是在单个上传的范围之外完成的。)
Upload.aspx输出的任何内容都应显示在onAllComplete
参数中。您可以简单地输出脚本创建的元素的id,响应应包含相应的字符串。
答案 1 :(得分:0)
正如所承诺的那样,我制作了一个关于如何在ASP.Net应用程序中使用Uploadify控件的视频教程。
http://casonclagg.com/articles/6/video-tutorial-uploadify-asp-net-c-sharp.aspx
希望这有帮助。
我的问题的简短答案是:
从Upload.ashx处理程序返回context.Response.Write("foo");
...
并将其放入uploadify控件中:
'onComplete': function(event, queueID, fileObj, response, data) {
alert(response);
}
将弹出一个带有单词foo的警告框。
你可以使这个更复杂,如
context.Response.Write("id=55&title=This is the title");
并在JQuery的OnComplete
或OnAllComplete
中自行解析这些值。