2012-03-06 3 views
12

yükleme (DropDownListBox), bir başlık (yüklenen dosya için - TextBox) ve bir dosya girişi (eklenti tarafından işlenir). devre dışı bırakılması otomatik yükleme Bir kategori seçmek için kullanıcıya izin vermek için ben bir sayfa var bir durum var asp.net</p> <p>kullanarak dosya yüklemek blueint jquery.fileupload eklentisi kullanıyorum

eklentisi: https://github.com/i-e-b/jQueryFileUpload.Net

javascript/jQuery:

$('#fileup').fileupload({ 
        replaceFileInput: false, 
        formData: function (form) { 
         return [{ name: 'dcat', value: $('#ddlCats').val() }, { name: 'title', value: $('#txtTitle').val()}]; 
        }, 
        dataType: 'json', 
        url: '/_handlers/FileHandler.ashx', 
        add: function (e, data) { 
         var valid = true; 
         var re = /^.+\.((doc)|(xls)|(xlsx)|(docx)|(pdf)|(pts))$/i; 
         $.each(data.files, function (index, file) { 
          if (!re.test(file.name)) { 
           $('#uploaded').html('This file type is not supported'); 
           valid = false; 
          } 
         }); 
         if (valid) 
          data.submit(); 
        }, 
        done: function (e, data) { 
         $.each(data.result, function (index, file) { 
          $('#uploaded').html(file); 
         }); 
         GetFiles($('#ddlCats').val()) 
        }, 
        error: function() { 
         alert('An error occured while uploading the document.'); 
        } 
       }); 

html:

Benim sorunum, dosya (bir http işleyicisi aracılığıyla) yüklendiği edilir
<div id="fUpload"> 
<span style="font-weight:bold;">Yeni Belge:</span><br /> 
    <table class="ktoeos"> 
     <tr> 
      <td>Category:</td> 
      <td> <select id="ddlCats"></select></td> 
     </tr> 
     <tr> 
      <td>Document Description:</td> 
      <td><input type="text" id="txtTitle" /></td> 
     </tr> 
     <tr> 
      <td>Select Document:</td> 
      <td><input type="file" name="file" id="fileup" /></td> 
     </tr> 
     <tr> 
      <td colspan="2"><input type="submit" id="btnSubmit" value="Upload" /></td> 
     </tr> 
    </table> 
    <div id="uploaded"></div> 

düz I sonra Bir dosya seçin. Bununla birlikte diğer form verilerini göndermek için kullanabilirim, ancak bu etkinliğin bazı doğrulama işlemini gerçekleştirmem gerektiğinden bu düğmeyi göndermesi istiyorum. Ayrıca, kullanıcı önce bir dosya seçmek ve daha sonra formun diğer bölümlerini doldurmak isteyebilir; bu durumda, bunu yapmadan önce sunulmakta olan formdan dolayı yapamaz.

Çok iyi bir javascript programcısı olmadığımdan, bu işlevin zaten mevcut olup olmadığını bilmiyorum (muhtemelen budur) .js dosyaları eklenti ile kullanılabilir. Ne değiştirmek ya da yapmak için ihtiyacım var?

cevap

6

Bu false bunu değiştirirseniz jquery.fileupload-ui.js

varsayılan olarak ayarlanmış bir seçenek " autoUpload: true" olarak orada yapmak çok kolaydır ve mümkün elle düğmesine tıklayın olayı kodu.

+0

Teşekkürler, ben bu yüzden indirilen ve projeme ve ilgili sayfanın üst kısmında bunu dahil bu dosyayı yoktu. Ardından, autoUpload'u önerilen şekilde false olarak değiştirdi, ancak hiçbir şey değişmedi. Dosyayı seçer seçmez hâlâ yüklenir. Koddaki herhangi bir şeyi değiştirmem gerekiyor mu? Bu dosyalara ekledim. Bu konuda bir şey olabilir: + jquery-1.7.js + jquery-ui-1.8.17.custom.min.js + jquery.fileupload.js + jquery.iframe-transport.js + jquery. fileupload-ui.js –

+0

@ Emin-İşte JQueryFileUpload.Net/jQueryFileUpload/scripts/Default/jquery.fileupload-ui.js (Ya da) linkini verdiğiniz Jquery fileupload-ui.js yoludur. asp.Net Uygulamasını buradan bulabilirsiniz http://www.webtrendset.com/2011/06/22/complete-code-example-for-using-blueimp-jquery-file-upload-control-in-asp-net/ – coder

+0

@ Emin-Bu sayfaya https://github.com/blueimp/jQuery-File-Upload/downloads en son sürümü indirin ve bunu çözüm gezgininde açın ve js klasörüne gidin ve jquery.fileupload- dosyasını bulun. ui.js ve otomatik yüklemeyi arayın ve 'tr' yerine 'false' olarak ayarlayın. 'Ue. Eğer bootstrapper kullanmak istiyorsanız, JQuery 1.7+ – coder

17

Dosyaları widget'a ekledikten sonra add geri çağırma işlemi çağrılır, bu nedenle yüklemeyi duraklatmak için geçersiz kılmanız ve ardından bir düğme tıklatmasıyla başlatmanız gerekir.

add: function (e, data) { 
    $("#btnSubmit").click(function() { 
     // validate file... 
     if(valid) 
      data.submit(); 
    }); 
} 

Güncelleme: dokümantasyon şimdi bu bir better example sahiptir: cevap için

+5

Tam olarak aradığım şey. Tek sorun, metin kutusunun dosya yolunu göstermemesidir. – ffffff01

İlgili konular