Primeiro jogue fora o endereço, http://fex-team.github.io/webuploader/
Há um documento de caso de demonstração relativamente completo. Este artigo adiciona principalmente um grande número de comentários com base no upload de arquivo e upload da imagem, o que basicamente garante que cada linha de código tenha comentários para ajudar a entender. É uma versão aprimorada da demonstração oficial do site. Espero que possa ajudar a todos a entender melhor o plug-in.
Primeiro, upload de arquivo
jQuery (function () {var $ = jQuery, $ list = $ ('#thelist'), $ btn = $ ('#ctlbtn'), state = 'pendente', uploader; // inicialização, você pode acessar diretamente o webuploader.uPloader uploader = webuPoLader.crate ({{{//) swerter. Base_url + '/js/uploader.swf', // Envie para o código de segundo plano para processamento e salvar o servidor servidor: 'http://webuploader.dupp.com/Server/FileUpload.php', // selecione o arquivo que se opção. }); '</h4>' + '<p> Aguarde o upload ... </p>' + '</div>'); $ ('#' + file.id), // Encontre o progresso da classe em $ li e defina-o como $ % ------ por que primeiro procure por US $ percentual = $ li.find ('. Progresso .progress-Bar'); Role = "ProgressBar"> ' +' </div> ' +' </div> '). Appendto ($ li) .Find ('. // O uploader desencadeia um evento e chama esse evento ao fazer upload com sucesso uploader uploader.on ('uploadsuccess', function (file) {// o evento acionado quando o arquivo é adicionado, findState, e adicionar o text como $ ('#'+file.id) .find ('p.state'). Evento quando o upload falha no uploader.on ('uploadError', function (file) {// o evento acionado quando o arquivo é adicionado, findState e adiciona o texto como erro de upload $ ('#'+file.id) .find ('p.state'). uploader.on ('uploadcomplete', function (arquivo) {// ligue para $ ('#'+file.id) .find ('. Progresso'). Fadeout ();}); 'StartUpload') {State = 'Upload'; $ btn.text ('start upload');Em seguida, envie a imagem
jQuery (function () {// atribui jQuery a uma variável global var $ = jQuery, $ list = $ ('#FILELIST'), // otimiza a retina, em retina, esse valor é 2, a razão de pixels de dispositivo / pixels de pixels de tamanho / pixel de pixels de tamanho 40 ° 1, // rathoil stratoiltio) Upload uploader uploader; 'Http://webuploader.duapp.com/server/fileupload.php', // Selecione o botão de arquivo. 'GIF, JPG, JPEG, BMP, PNG', MIMETIPES: 'Image/*'}}); info '<div>' + file.name + '</div>' + '</div>'), $ img = $ li.find ('img'); Interatividade // O retorno de chamada possui dois parâmetros. Thumbnailyek); $ ('<p> <rpa> </span> </p>') .Appendto ($ li) .Find ('span'); '#'+file.id) .addclass ('upload-state-Done'); Apêndão ($ LI);Abaixo está o código de fundo do Java, usado para obter arquivos carregados e escrever o caminho real dos arquivos enviados para o servidor
1. Primeiro de tudo, devemos criar um local de armazenamento para os arquivos carregados. A localização geral é dividida em pastas temporárias e reais. Então precisamos obter os caminhos absolutos dessas duas pastas. No servlet, podemos fazer isso.
ServletContext aplicativo = this.getServletContext (); String tempdirectory = Application.getRealPath (constant.temp_directory) + "/"; String realDirectory = Application.GetRealPath (constant.real_directory) + "/";
Em seguida, crie uma fábrica de arquivos, ou seja, um armazém, um parâmetro indica o quão grande é armazenar Flush.
A cópia do código é a seguinte: FILDETEMFACTORY FACTORY = new DiskFileItemFactory (constant.size_threshold, novo arquivo (tempdirectory));
ServletfileUpload upload = new ServletFileUpload (fábrica);
2. Configure os arquivos enviados
upload.SetSizEMAX (500*1024*1024); // Defina o valor máximo deste upload para 500m3, analise o corpo da solicitação, obtenha o arquivo de upload e escreva o caminho real sem jogar uma exceção
List <FileItem> list = upload.parserequest (request); Iterator <FileItem> iter = list.iterator (); while (iter.hasnext ()) {fileItem item = iter.Next (); //item.isformfield () é usado para determinar se o objeto atual é os dados do campo do formulário de arquivo. Se o valor de retorno for verdadeiro, significa que não é um campo de formulário normal se (item.isformfield ()) {System.out.println ("Campo de formulário normal" +item.getFieldName ()); System.out.println (item.getString ("utf-8")); } else {//system.out.println("File Form Field " + item.getFieldName ()); /** Somente o campo do formulário de arquivo grava o conteúdo no objeto na pasta real*/string lastPath = item.getName (); // Obtenha o nome do arquivo carregado lastPath = lastPath.substring (lastPath.LastIndexOf ("". "); String filename = uuid.randomuuid (). Tostring (). Substituir ("-", "") + lastPath; item.write (novo arquivo (realdirectory+nome do arquivo)); pacote com.lanyou.support.servlet; importar java.io.file; importar java.io.ioException; importar java.io.printwriter; importar java.util.list; import javax.servlet.servleTleTexception; import javax.servlet.http.httslet. javax.servlet.http.httpServletRequest; importar javax.servlet.http.httpServletResponse; importação net.sf.json.jsonObject; importação org.apache.commons.fileUpload.FileAdem; import.pache.commons.commons.fileUpload.FileAdem; import.pache.commons.commons.fileUpload.fileAdem; import.apache.commons.commons.fileUpload.FileAdem; import.apache.commons.commons.fileUpload.FileAdem; import.pache.commons.commons.fileUpload.FileAdem; import.apache.commonuM.Commons.FileUplOad.FileAdem; org.apache.commons.fileupload.disk.diskfileItemFactory; importar org.apache.commons.fileupload.servlet.servletfileupload; importação org.apache.commons.logging.log; importar Org.apache.commons.portgging.logging.logging; org.apache.commons.logging.logfactory; importar org.apache.struts2.servletActionContext; classe pública FileUpload estende httpServlet {private estático final serialversionuid = 1L; Logger estático privado = logFactory.getLog (FileUpload.class); @Override Protected Void Doget (httpServletRequest req, httpServletResponse resp) lança servletexception, ioexception {dopost (req, resp); } @Override Protected void DoPost (httpServletRequest req, httpServletResponse resp) lança servletexception, ioexception {// Fargue o arquivo com o evento tipo 1 2apk string t = req.getParameter ("t") == null? "1": req.getParameter ("t") .Trim (); String path = ""; JsonObject ob = new jsonObject (); tente {// tarefa para encapsular cada item na mensagem de solicitação em um objeto DiskFileItem separado // salve -o na memória quando os itens de arquivo carregados forem pequenos e salve -o no disco quando o disco for zero./create um armazém de arquivo (fábrica) fileItemFactory = new DiskFileItemFactory (); ServletfileUpload servletfileUpload = new ServletFileUpload (fábrica); // Configure o arquivo carregado ServletFileUpload.SetSizEMAX (1024 * 1024 * 2); // Máximo 2M Data ServletFileUpload.setFileSizEMAX (2 * 1024 * 1024); servletfileupload.setheadeRencoding ("utf-8"); // Resolva o problema dos nomes de arquivos distorcidos // Resolva o corpo da solicitação, obtenha o arquivo enviado e escreva o caminho real se nenhuma exceção for lançada // obtenha a lista de arquivos de acordo com a lista de solicitação <FileItem> fileItemslist = servletfileUPLOAD.PARSERMERMEREMERMERMERMEREIRA (FILEITEM> FileItemSlist = servletFileUPLOAD.PARSEREMER // busca um objeto de arquivo separado na lista de arquivos para (FileItem Item: FileItemslist) {// Determine se o arquivo é um tipo de formulário comum, onde o tipo de arquivo insere o julgamento se (! Item.isformfield ()) {// se o arquivo upload for maior que o tamanho especificado, retornar se (item.getSize ()> 2 * 10242424 * 102424 * 10242424 * 102424 * 1024242424242424 * } // System.out.println ("O tamanho do arquivo carregado:"+item.getSize ()); // System.out.println ("Tipo de arquivo de upload:"+item.getContentType ()); // System.out.println ("Nome do arquivo de upload:"+item.getName ()); // Carregar o nome do arquivo string filename = item.getName (); String ent = ""; // Tipo de conteúdo if (item.getContentType (). Equalsignorecase ("imagem/x-png") || item.getContentType (). Equalsignorecase ("Image/png")) {ent = ".png"; } else if (item.getContentType (). Equalsignorecase ("image/gif")) {ent = ".gif"; } else if (item.getContentType (). Equalsignorecase ("image/bmp")) {ent = ".bmp"; } else if (item.getContentType (). Equalsignorecase ("image/pjpeg") || item.getContentType (). Equalsignorecase ("image/jpeg")) {ent = ".jpg"; } // Qual formato é a obtenção do arquivo if (filename.lastIndexof (".")! = -1) {ent = filename.substring (filename.lastindexOF (".")); } filename = "ev_" + system.currenttimemillis () + ent; // Defina o caminho do arquivo, dependendo da estrutura da sua pasta, pode ser necessário fazer alterações se (t.equals ("1")) {path = "upload/ev/" + filename; } else {path = "upload/pk/" + nome do arquivo; } // Salvar o arquivo no arquivo do servidor Arquivo = novo arquivo (req.getSession (). GetServletContext () .getRealPath (Path)); if (! file.getParentFile (). exist ()) {file.getParentFile (). mkdirs (); } item.Write (arquivo); // logger.info (caminho); // quebrar; ob.acumular ("url", caminho); }} resp.setContentType ("text/html; charset = utf-8"); resp.getWriter (). Write (ob.ToString ()); } catch (Exceção e) {e.printStackTrace (); } finalmente {// Response client // resp.setContentType ("text/html; charset = utf-8"); // resp.getWriter (). write (ob.toString ()); }}}O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.