2009-08-24 90 views
2

是否有任何多個上傳圖像易於用戶上傳圖像,如Facebook上的activex文件上傳器。c#/ jquery上的多個上傳圖像

但免費:)

更新我的問題,我看到大家推薦一下Flash上​​傳。 我有「使用會話男, 我」的問題中號傳遞用戶相冊ID爲關係到uploded圖像

是上傳 圖像和用戶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 
       } 
} 

感謝

+0

您的SaveImages文件在哪裏保存圖像? Uploadify負責將所有文件移動到您指定的目錄。你只是在之後移動它們。如果是這樣,您可以使用我的.ashx示例第一次保存到正確的位置。我們正在使用此上傳器一次上傳多個用戶的文件,並將這些文件保存在每個用戶文件夾中 – 2009-08-24 14:13:47

回答

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您可以通過以下獲得scriptData ASHX:

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

此代碼是uploadify具體的,但希望它會幫助你瞭解你的

+0

+1看起來不錯! – Cleiton 2009-08-24 13:11:15

+0

我使用會話,這是我的問題,使用它,你有什麼解決方案? – avnic 2009-08-24 13:18:56

+0

什麼具體是你使用的會話? – 2009-08-24 13:20:14

1

其實,它是用Flash完成的。互聯網上有很多解決方案。 here是codeproject中的一個。

+0

偉大的思想家們都會這麼想嗎? – JustLoren 2009-08-24 13:05:55

1

我使用的庫位於http://www.codeproject.com/KB/aspnet/FlashUpload.aspx爲我的項目。它非常輕巧,適合修改。

基本上,它是一個用Flex編寫的多文件上傳器。這非常簡單,您還可以在需要時打開代碼並進行更改。

+0

1+「偉大的思想相似嗎?」當然,大聲笑。 – Cleiton 2009-08-24 13:11:46

1

我已經成功地使用Uploadify與ASP.NET MVC創建帶有自動圖像預覽功能的多文件上傳腳本全部與AJAX內聯。需要注意的一點是,如果您在上傳操作中使用會話變量被SWFUpload/Uploadify命中,則Flash將獲得自己的SessionID以及將Flash上​​載請求放置在Flash會話中的任何內容。

+0

這是我的問題實際上,我使用會話 你有任何解決方案嗎? – avnic 2009-08-24 13:17:02

+0

@avnic:這取決於你爲什麼使用會話。沒有辦法讓閃存啓動您的預先存在的會話。解決方法的一個示例可能是將圖像存儲在與用戶標識關聯的文件夾中,然後從主會話中檢查該文件夾。解決方法實際上取決於您的實施。 – JustLoren 2009-08-24 13:23:12

+0

我同意!爲了最好地回答這個問題,我們確實需要更多關於實施的信息。有幾種選擇可供選擇,但只有在瞭解項目的整個範圍後才能給出最佳選擇。 – 2009-08-24 13:25:33