Uploadify - 将信息传回原始表格

时间:2010-03-03 07:46:09

标签: c# asp.net session uploadify

我有一个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

2 个答案:

答案 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的OnCompleteOnAllComplete中自行解析这些值。