2009-08-24 3 views
2

есть ли там несколько загружаемых изображений, которые легко загружать пользователям, чтобы загружать изображения, такие как загружаемый файл activex на facebook.многократные загрузки изображений на C#/jquery

но бесплатно :)

я обновить мои вопросы я увидел, что все рекомендуют о флэш-загрузчик. у меня есть проблема, что я «м с помощью сеансов, я» м пропускания пользователя идентификатора альбома для связи с изображением, которое было загружено и идентификатором пользователя, uploded изображения

это код на первой странице

<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 для сохранения в нужном месте в первый раз. Мы используем этот загрузчик для одновременной загрузки файлов для нескольких пользователей, и файлы сохраняются в каждой папке пользователей. –

ответ

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 на другой странице

Для страницы .ahx на Uploadify пользователя:

с помощью опции 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}, 

в.ASHX из Uploadify вы можете получить scriptData следующим:

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

Этот код Uploadify конкретные, но, надеюсь, это поможет вам понять ваш

+0

+1 это отлично выглядит! – Cleiton

+0

Я использую сеансы, и это моя проблема с этим, у вас есть какое-то решение? – avnic

+0

Что конкретно вы используете для сеансов? –

1

На самом деле, это делается с помощью Flash. В Интернете есть множество решений. here - один из кодовых проектов.

+0

Великие умы тоже думают? – JustLoren

1

Я использовал библиотеку, расположенную по адресу http://www.codeproject.com/KB/aspnet/FlashUpload.aspx для моего проекта. Это довольно легкий вес и хорошо поддается модификации.

В принципе, это многофайловый загрузчик, написанный на Flex. Достаточно просто, что вы также можете распаковать код и внести изменения, если вам нужно.

+0

1+ «Великие умы думают одинаково?» Конечно, LOL. – Cleiton

1

я успешно использовал Uploadify с ASP.NET MVC для создания сценарий загрузки нескольких файлов с автоматическим предварительным просмотром изображений со встроенным AJAX. Одна вещь, о которой следует помнить, если вы используете переменные сеанса в вашем действии загрузки, попадающем в SWFUpload/Uploadify, заключается в том, что Flash получает свой собственный SessionID и все, что помещается в сеанс после того, как запрос на загрузку Flash помещен в Flash сеанс.

+0

это моя проблема на самом деле, я использую сессии у вас есть решение для этого? – avnic

+0

@avnic: Это зависит от * почему * вы используете сеанс. Невозможно установить флеш-память в предыдущую сессию. Одним из примеров обходного пути может быть сохранение ваших изображений в папке, связанной с идентификатором пользователя, а затем проверка этой папки из основной сессии. Обходной путь действительно зависит от вашей реализации. – JustLoren

+0

Я согласен! Нам действительно нужна дополнительная информация о вашей реализации, чтобы лучше ответить на этот вопрос. Для вас есть несколько вариантов, но лучший может быть предоставлен только тогда, когда мы понимаем всю сферу действия проекта. –