c#/ jquery上的多个上传图片

时间:2009-08-24 13:02:37

标签: c# jquery

有没有多个上传图片,方便用户上传图片,如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>

以及第二页上传后的代码

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
                 }
}

感谢

4 个答案:

答案 0 :(得分:8)

尝试使用uplodify。它也使用闪光灯,我强烈推荐它。它是一种高度可定制的免费产品。

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

制作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" />

以下是设置按钮以发布到第二页的方法:

<asp:Button runat="server" ID="btn_Submit" PostBackUrl="YourPage.aspx" />

在第二页上,您可以从请求中获取信息,如下所示:

Request["hdf_UserID"].ToString()
Request["hdf_AlbumID"].ToString()
Request["hdf_ImageFiles"].ToString()

您可以将所有文件存储在隐藏字段中,我建议|分隔 然后你可以在另一页上做一个.split

对于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的.ashx中,您可以通过以下方式获取scriptData:

string user = context.Request["User"];
string album = context.Request["Album"];

此代码是uploadify特定的,但希望它可以帮助您了解您的

答案 1 :(得分:1)

实际上,它是用Flash完成的。互联网上有很多解决方案。 here是codeproject中的一个。

答案 2 :(得分:1)

我使用位于 http://www.codeproject.com/KB/aspnet/FlashUpload.aspx的库作为我的项目。它非常轻巧,非常适合修改。

基本上,它是用Flex编写的多文件上传器。这很简单,如果需要,你也可以打开代码并进行更改。

答案 3 :(得分:1)

我已经成功地将Uploadify与ASP.NET MVC一起使用,创建了一个多文件上传脚本,其自动图像预览全部与AJAX内联。如果在上传操作中使用会话变量被SWFUpload / Uploadify命中,请记住一件事是Flash在Flash上​​传请求放入 Flash 会议。