Javaは複数のファイルのアップロードを実現します(ファイルサイズ、ファイルタイプを検証します).
9615 ワード
アップロードはJava開発者ごとにマスターしなければなりません.ファイルのアップロードには多くの実現方法がありますが、実は大同小異です.ペンマンはここで私が慣れたファイルをアップロードする方法を紹介します.みんなは先にコードを見て、最後に私は私のソースコードを共有します. 1、まず必要なjarカバンを準備します. commons-fileupload-12.jar-common-i-o-1.4.jarは[(http://commons.apache.org/もちろん、私のプロジェクトのソースコードの中にもあります.
もちろん、上记のコードはアップロードの机能だけです.下のソースコードを共有します.ソースの中には配置ファイルに书かれています.
以下は私のソースコードを共有します.ファイルをアップロードします.
問題があれば、皆さんはお互いに交流し、切磋琢磨します.
public static String fileUpload(HttpServletRequest request,HttpServletResponse response)throws Exception
{
//
String fileType = "mp3,mp4,video,rmvb,pdf,txt,xml,doc,gif,png,bmp,jpeg";
// (100M, byte)
int maxSize = 1024*1024*100;
response.addHeader("Access-Control-Allow-Origin", "*");
//
String savePath = request.getRealPath("/") + "save/";
response.setContentType("text/html; charset=UTF-8");
//
File uploadDir = new File(savePath);
if ( !uploadDir.exists())
{
uploadDir.mkdirs();
}
if ( !uploadDir.canWrite())
{
return " !";
}
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(1024 * 1024); // , 1M
factory.setRepository(uploadDir); //
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setHeaderEncoding("UTF-8");
List items = upload.parseRequest(request);
Iterator it = items.iterator();
FileItem item = null;
String fileName = "";
String name = "";
String extName = "";
String newFileName = "";
while (it.hasNext())
{
item = (FileItem)it.next();
fileName = item.getName();
if (null == fileName || "".equals(fileName))
{
continue;
}
//
if (item.getSize() > maxSize)
{
item.delete();
JOptionPane.showMessageDialog(null, " ! " + maxSize
/ 1024 / 1024 + "M");
return " ! " + maxSize;
}
//
// System.getProperties().getProperty("file.separator"))
//
name = fileName.substring(fileName.lastIndexOf("\\") + 1,
fileName.lastIndexOf("."));
//
extName = fileName.substring(fileName.indexOf(".") + 1).toLowerCase().trim();
//
if ( !Arrays.<String> asList(fileType.split(",")).contains(extName))
{
item.delete();
JOptionPane.showMessageDialog(null, " , " + fileType
+ " !");
return " , " + fileType
+ " !";
}
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
newFileName = name + df.format(new Date()) + "." + extName;
File uploadedFile = new File(savePath, newFileName);
item.write(uploadedFile);
}
return "success";
}
上のコードはもうokです.私のパラメータのいくつかは、ファイルのアップロードが許可されているサイズや、ファイルの種類など、書き込みが完了しています.設定ファイルに書いて、この設定ファイルを読んで、中のパラメータを得たほうがいいです.設定ファイルの中のパラメータも書いていませんが、意味が違っています.プログラマーとしては、他の人に便宜を提供しています.毎回変更したら、中のコードを使います.配置ファイルを変更してもいいです.これも私たちがスマート化する必要があります.もちろん、上记のコードはアップロードの机能だけです.下のソースコードを共有します.ソースの中には配置ファイルに书かれています.
以下は私のソースコードを共有します.ファイルをアップロードします.
問題があれば、皆さんはお互いに交流し、切磋琢磨します.