2012-06-28 4 views
1

Je veux télécharger un fichier en utilisant jQuery et stocker dans un dossier sur le serveur. Je ne sais pas comment commencer. Le chemin du fichier doit également être stocké dans une base de données Oracle. Mon scénario entier est basé sur Entity Framework. Est-ce que quelqu'un a une idée de la façon de résoudre ce problème?Comment télécharger un fichier en utilisant jquery?

+0

Visitez http://stackoverflow.com/questions/4668086/ n'importe quel plugin-to-upload-file [1]: –

Répondre

0

vous pouvez télécharger le fichier facilement à l'aide iframe dans jquery si vous ne voulez pas utiliser de plugin. Je faisais face à ce problème depuis plusieurs jours maintenant j'ai résolu cela.

$(document).ready(function() { 
    $("#formsubmit").click(function() {  

     var iframe = $('<iframe name="postframe" id="postframe" class="hidden" src="about:none" />');   

     $('div#iframe').append(iframe);   

     $('#theuploadform').attr("action", "/ajax/user.asmx/Upload") 
     $('#theuploadform').attr("method", "post") 
     $('#theuploadform').attr("userfile", $('#userfile').val()) 
     $('#theuploadform').attr("enctype", "multipart/form-data") 
     $('#theuploadform').attr("encoding", "multipart/form-data") 
     $('#theuploadform').attr("target", "postframe")   
     $('#theuploadform').submit(); 
     //need to get contents of the iframe 
     $("#postframe").load(
      function() { 
       iframeContents = $("iframe")[0].contentDocument.body.innerHTML; 
       $("div#textarea").html(iframeContents); 
      } 
     ); 



<div id="uploadform"> 
    <form id="theuploadform" action=""> 
     <input id="userfile" name="userfile" size="50" type="file" /> 
     <input id="formsubmit" type="submit" value="Send File" /> 
    </form> 
</div> 

<div id="iframe" style="width: 0px; height: 0px; display: none;"> 
</div> 

<div id="textarea"> 
</div> 

Il va télécharger le fichier. Maintenant, la seule chose qui reste est de recevoir ce fichier sur votre serveur. J'ai utilisé servlet pour obtenir le fichier et après que j'ai appelé un service. Cet exemple fonctionnera pour chaque fichier image, texte, docx, doc, etc.

Servlet:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
try { 
    ServletFileUpload upload = new ServletFileUpload(); 
    response.setContentType("text/plain"); 
    //response.setContentType("application/msword"); 


    FileItemIterator iterator = upload.getItemIterator(request); 

    while (iterator.hasNext()) { 
     FileItemStream item = iterator.next(); 
     String filename = item.getName(); 
     InputStream stream = item.openStream(); 
     //more here you wanna to do with that file do. 
    } 
} 
catch (FileUploadException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

... Profitez

Questions connexes