Fine uploader для загрузки нескольких файлов с помощью ASP.NET обработчик
Привет,
Я использую fine uploader для загрузки нескольких файлов. Я добавил обработчик для сохранения этих файлов в папке.
При выборе нескольких файлов и загрузках , в обработчике, context.Request.Файлы повторяют только один файл rahter, чем все файлы.
как я могу это сделать ? у кого-нибудь есть рабочий пример использования asp.net -что ?
Что я уже пробовал:
<pre> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- Fine Uploader New/Modern CSS file ====================================================================== --> <link href="client/fine-uploader-new.css" rel="stylesheet"> <!-- Fine Uploader JS file ====================================================================== --> <script src="client/fine-uploader.js"></script> <!-- Fine Uploader Thumbnails template w/ customization ====================================================================== --> <script type="text/template" id="qq-template-manual-trigger"> <div class="qq-uploader-selector qq-uploader" qq-drop-area-text="Drop files here"> <div class="qq-total-progress-bar-container-selector qq-total-progress-bar-container"> <div role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" class="qq-total-progress-bar-selector qq-progress-bar qq-total-progress-bar"></div> </div> <div class="qq-upload-drop-area-selector qq-upload-drop-area"> <span class="qq-upload-drop-area-text-selector"></span> </div> <div class="buttons"> <div class="qq-upload-button-selector qq-upload-button"> <div>Select files</div> </div> <button type="button" id="trigger-upload" class="btn btn-primary"> Upload </button> </div> <span class="qq-drop-processing-selector qq-drop-processing"> <span>Processing dropped files...</span> <span class="qq-drop-processing-spinner-selector qq-drop-processing-spinner"></span> </span> <ul class="qq-upload-list-selector qq-upload-list" aria-live="polite" aria-relevant="additions removals"> <li> <div class="qq-progress-bar-container-selector"> <div role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" class="qq-progress-bar-selector qq-progress-bar"></div> </div> <span class="qq-upload-spinner-selector qq-upload-spinner"></span> <img class="qq-thumbnail-selector" qq-max-size="100" qq-server-scale> <span class="qq-upload-file-selector qq-upload-file"></span> <span class="qq-edit-filename-icon-selector qq-edit-filename-icon" aria-label="Edit filename"></span> <input class="qq-edit-filename-selector qq-edit-filename" tabindex="0" type="text"> <span class="qq-upload-size-selector qq-upload-size"></span> <button type="button" class="qq-btn qq-upload-cancel-selector qq-upload-cancel">Cancel</button> <button type="button" class="qq-btn qq-upload-retry-selector qq-upload-retry">Retry</button> <button type="button" class="qq-btn qq-upload-delete-selector qq-upload-delete">Delete</button> <span role="status" class="qq-upload-status-text-selector qq-upload-status-text"></span> </li> </ul> <dialog class="qq-alert-dialog-selector"> <div class="qq-dialog-message-selector"></div> <div class="qq-dialog-buttons"> <button type="button" class="qq-cancel-button-selector">Close</button> </div> </dialog> <dialog class="qq-confirm-dialog-selector"> <div class="qq-dialog-message-selector"></div> <div class="qq-dialog-buttons"> <button type="button" class="qq-cancel-button-selector">No</button> <button type="button" class="qq-ok-button-selector">Yes</button> </div> </dialog> <dialog class="qq-prompt-dialog-selector"> <div class="qq-dialog-message-selector"></div> <input type="text"> <div class="qq-dialog-buttons"> <button type="button" class="qq-cancel-button-selector">Cancel</button> <button type="button" class="qq-ok-button-selector">Ok</button> </div> </dialog> </div> </script> <style> #trigger-upload { color: white; background-color: #00ABC7; font-size: 14px; padding: 7px 20px; background-image: none; } #fine-uploader-manual-trigger .qq-upload-button { margin-right: 15px; } #fine-uploader-manual-trigger .buttons { width: 36%; } #fine-uploader-manual-trigger .qq-uploader .qq-total-progress-bar-container { width: 60%; } </style> <title>Fine Uploader Manual Upload Trigger Demo</title> </head> <body> <!-- Fine Uploader DOM Element ====================================================================== --> <div id="fine-uploader-manual-trigger"></div> <!-- Your code to create an instance of Fine Uploader and bind to the DOM/template ====================================================================== --> <script> debugger; var manualUploader = new qq.FineUploader({ element: document.getElementById('fine-uploader-manual-trigger'), template: 'qq-template-manual-trigger', request: { endpoint: 'Server/FileUploader.ashx?dlr=test&stk=1234' }, thumbnails: { placeholders: { waitingPath: '/client/placeholders/waiting-generic.png', notAvailablePath: '/client/placeholders/not_available-generic.png' } }, autoUpload: false, debug: true }); qq(document.getElementById("trigger-upload")).attach("click", function () { // qq(document.querySelector("#fine-uploader-manual-trigger #trigger-upload")).attach("click", function () { manualUploader.uploadStoredFiles(); }); </script> </body> </html>
Код обработчика
public void ProcessRequest(HttpContext context) { //?? some time request works some time didn;t dealer = context.Request.QueryString["dlr"]; stockNo = context.Request.QueryString["stk"]; // context.Response.ContentType = "text/plain"; //context.Response.Write("Hello World"); try { int maxSequence = 28; // UploadFile(context); HttpFileCollection files = context.Request.Files; for (int i=0;i<files.Count;i++) { maxSequence++; HttpPostedFile PostedFile = files[i]; string FileName = String.Format(fname, dealer, stockNo, maxSequence.ToString()); PostedFile.SaveAs(FileName); } } catch (Exception ex) { context.Response.Write(string.Format(failString, ex.Message)); } }