在c#/jquery上多个上载图像

在c#/jquery上多个上载图像,c#,jquery,C#,Jquery,是否有任何多个上传图像方便用户上传图像,如facebook上的activex文件上传器 但免费:) 我更新了我的问题,我看到每个人都推荐flash上传器。 我的问题是我在使用会话, 我正在传递与已上载图像相关的用户相册id 以及上传图像的用户id 这是第一页中的代码 <div id="divUploadImage" style="display: none;"> <FlashUpload:FlashUpload ID="flashUp

是否有任何多个上传图像方便用户上传图像,如facebook上的activex文件上传器

但免费:)

我更新了我的问题,我看到每个人都推荐flash上传器。 我的问题是我在使用会话, 我正在传递与已上载图像相关的用户相册id 以及上传图像的用户id

这是第一页中的代码

  <div id="divUploadImage" style="display: none;">
                    <FlashUpload:FlashUpload ID="flashUpload" runat="server" UploadPage="Upload2.axd"
                        OnUploadComplete="UploadComplete()" FileTypeDescription="Images" FileTypes="*.gif; *.png; *.jpg; *.jpeg"
                        UploadFileSizeLimit="3000000" TotalUploadSizeLimit="40000000" />
                    <asp:LinkButton ID="LinkButton1" runat="server"></asp:LinkButton>
                </div>

并在第二页上传fire后的代码

public void ProcessRequest(HttpContext context)
        {

  for (int j = 0; j < context.Request.Files.Count; j++)
                {

 HttpPostedFile uploadFile = context.Request.Files[j];
  SaveImages(uploadFile, "", albumid,out returnPhotoId); // my function to save ,albumId is the session
                 }
}
public void ProcessRequest(HttpContext上下文)
{
对于(int j=0;j

谢谢

事实上,这是用Flash完成的。互联网上有很多解决方案。是来自codeproject的库。

我在项目中使用了位于的库。它非常轻巧,便于修改

基本上,它是用Flex编写的多文件上传程序。这非常简单,如果需要,您还可以打开代码并进行更改。

尝试使用。它也使用flash,我强烈推荐它。这是一个高度定制和免费的产品

上传所有文件后发布到其他页面:

制作3个隐藏字段,如下所示:

<asp:HiddenField runat="server" ID="hdf_UserID" name="hdf_UserID"  />
<asp:HiddenField runat="server" ID="hdf_AlbumID" name="hdf_AlbumID" />
<asp:HiddenField runat="server" ID="hdf_ImageFiles" name="hdf_ImageFiles" />
您可以将所有文件存储在隐藏字段中,我建议使用|分隔符 然后你就可以在另一页上进行拆分了

对于uploadify上传程序的.ahx页面:

使用scriptData选项,可以将信息传递到第二个页面

 var auth = "<% = Request.Cookies[FormsAuthentication.FormsCookieName]==null ? string.Empty : Request.Cookies[FormsAuthentication.FormsCookieName].Value %>"
 var user = $('[id$=hdf_UserID]').val();
 var album = $('[id$=hdf_AlbumID]').val();

 $('[id$=fileInput]').uploadify({
        'uploader': '../Uploadify/uploadify.swf',
        'script': '../Uploadify/Upload2.ashx',
        'scriptData': {'Token': auth, 'User': user, 'Album': album},

这段代码是特定于uploadify的,但希望它能帮助您理解您的代码

我已经成功地使用ASP.NET MVC创建了一个带有自动图像预览的多文件上传脚本,所有这些都与AJAX内联。如果您在被SWFUpload/Uploadify点击的上传操作中使用会话变量,需要记住的一点是,Flash会获得自己的会话ID,并且在Flash会话中放置Flash上传请求后,会话中放置的任何内容。

这实际上是我的问题,我正在使用会话,您有什么解决方案吗?@avnic:这取决于您使用会话的原因。没有办法让flash拾取您先前存在的会话。解决方法的一个示例是将图像存储在与userid关联的文件夹中,然后从主会话中检查该文件夹。解决方法实际上取决于您的实现。我同意!为了最好地回答这个问题,我们确实需要更多关于您的实现的信息。你有几种选择,但只有当我们了解整个项目的范围时,才能给出最好的选择。我提出的解决方案相当粗糙。我编写了一个自定义会话实现,它可以选择接受SessionID作为参数,以便修改其他用户的会话。这里的代码:不是最新的迭代,但我所做的唯一更改是添加/删除方法。我不能保证代码的质量,但我可以告诉你,它在我的所有测试中都有效。我使用会话,这是我使用会话的问题,你有什么解决方案吗?你使用会话的具体目的是什么?我正在传递用户ID,和albumId如果您将用户ID和albumId传递到下一页,为什么不将发送到下一页的所有信息存储在隐藏字段中。然后,当您发布到下一页时,您可以从请求中获取信息,如:Request[“userId”]。ToString()我不知道如何通过请求从第一页获取隐藏字段SaveImages文件在哪里保存图像?Uploadify负责将所有文件移动到指定的目录。你只是事后搬家吗。如果是这样,您可以使用my.ashx示例第一次保存到正确的位置。我们使用这个上传器一次上传多个用户的文件,文件保存在每个用户文件夹中
Request["hdf_UserID"].ToString()
Request["hdf_AlbumID"].ToString()
Request["hdf_ImageFiles"].ToString()
 var auth = "<% = Request.Cookies[FormsAuthentication.FormsCookieName]==null ? string.Empty : Request.Cookies[FormsAuthentication.FormsCookieName].Value %>"
 var user = $('[id$=hdf_UserID]').val();
 var album = $('[id$=hdf_AlbumID]').val();

 $('[id$=fileInput]').uploadify({
        'uploader': '../Uploadify/uploadify.swf',
        'script': '../Uploadify/Upload2.ashx',
        'scriptData': {'Token': auth, 'User': user, 'Album': album},
string user = context.Request["User"];
string album = context.Request["Album"];