java限制上傳類型
//1.初始化smartupload對象
SmartUpload su=new SmartUpload();
su.initialize(pageContext);
//2.定義上傳文件類型
su.setAllowedFilesList("gif,jpg,doc,txt");
//3.不允許上傳類型
su.setDeniedFilesList("jsp,asp,html,exe,bat");
//4.設置字元編碼、
su.setCharset("UTF-8");
//5.設置的單個上傳最大限制
su.setMaxFileSize(5*1024*1024);
//6.總共上傳限制
su.setTotalMaxFileSize(20*1024*1024);
//7.上傳
su.upload();
//su.getFiles().getCount() 獲取上傳數
File file=su.getFiles().getFile(0);
String filename=file.getFileName();
System.out.print(filename);
String filepath="upload\\";
filepath+=file.getFileName();
file.saveAs(filepath,SmartUpload.SAVE_VIRTUAL);
⑵ java通過sftp上傳大文件,時間長,而且會提示超出GC開銷限制,內存溢出,這種問題怎麼解決
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("GBK");
HttpSession session = (HttpSession) request.getSession();
final long MAX_SIZE = 10 * 1024 * 1024;// 設置上傳文件最大為 10M
// 允許上傳的文件格式的列表
final String[] allowedExt = new String[] { "jpg", "jpeg", "gif", "png",
"JPG", "bmp", "BMP" };
response.setContentType("text/html;charset=gbk");
// 設置字元編碼為UTF-8, 這樣支持漢字顯示
response.setCharacterEncoding("GBK");
String strImageName = (String) session.getAttribute("strName");
if (ServletFileUpload.isMultipartContent(request)) {
// 實例化一個硬碟文件工廠,用來配置上傳組件ServletFileUpload
DiskFileItemFactory dfif = new DiskFileItemFactory(); dfif.setSizeThreshold(4096);// 設置上傳文件時用於臨時存放文件的內存大小,這里是4K.多於的部分將臨時存在硬碟
dfif.setRepository(new File(this.getServletContext().getRealPath(
"/")
+ "Image"));// 設置存放臨時文件的目錄,web根目錄下的Image目錄
// 用以上工廠實例化上傳組件
ServletFileUpload sfu = new ServletFileUpload(dfif); // 設置最大上傳尺寸
sfu.setSizeMax(MAX_SIZE); PrintWriter out = response.getWriter();
// 從request得到 所有 上傳域的列表
List fileList = null;
try {
fileList = sfu.parseRequest(request);
} catch (FileUploadException e) {// 處理文件尺寸過大異常
if (e instanceof SizeLimitExceededException) {
out.println("文件尺寸超過規定大小:" + MAX_SIZE + "位元組<p />");
out.println("<a href='addGoods.jsp' >返回</a>");
return;
}
e.printStackTrace();
}
// 沒有文件上傳
if (fileList == null || fileList.size() == 0) {
out.println("請選擇要上傳文件a<p />");
out.println("<a href='addGoods.jsp' >返回</a>");
return;
}
// 得到所有上傳的文件
Iterator fileItr = fileList.iterator();
// 循環處理所有文件
this.list = new ArrayList();
while (fileItr.hasNext()) {
long size = 0;
// 得到當前文件
fileItem = (FileItem) fileItr.next();
// 忽略簡單form欄位而不是上傳域的文件域(<input type="text" />等)
if (fileItem == null || fileItem.isFormField()) {
System.out.println(fileItem.getFieldName());
inputstr = fileItem.getString("GBK");
list.add(inputstr);
continue;
}
// 得到文件的完整路徑
path = fileItem.getName();
// 得到文件的大小
size = fileItem.getSize();
if ("".equals(path) || size == 0) {
out.println("請選擇上傳文件<p />");
out.println("<a href='addGoods.jsp' >返回</a>");
return;
}
System.out.println("文件的完整路徑" + path);
// 得到去除路徑的文件名
t_name = path.substring(path.lastIndexOf("\\") + 1);
// 得到文件的擴展名(無擴展名時將得到全名)
String t_ext = t_name.substring(t_name.lastIndexOf(".") + 1);
// 拒絕接受規定文件格式之外的文件類型
//System.out.println("文件名:" + t_name);
//System.out.println("文件擴展名:"+t_ext);
// System.out.println(t_ext);
int allowFlag = 0;
int allowedExtCount = allowedExt.length;
for (; allowFlag < allowedExtCount; allowFlag++) {
if (allowedExt[allowFlag].equals(t_ext))
break;
}
if (allowFlag == allowedExtCount) {
out.println("請上傳以下類型的文件<p />");
for (allowFlag = 0; allowFlag < allowedExtCount; allowFlag++)
out.println("*." + allowedExt[allowFlag]
+ " ");
out.println("<p /><a href='addGoods.jsp' >返回</a>");
return;
}
long now = System.currentTimeMillis();
// 根據系統時間生成上傳後保存的文件名
u_name = this.getServletContext().getRealPath("/")
+ "ImageDown\\" + t_name;
//System.out.println(u_name);
try {
// 保存文件
fileItem.write(new File(u_name));
/*out
.println("文件上傳成功. 文件大小: " + size
+ "位元組<p />");
out.println("圖片上傳成功!"
+ "<a href='addGoods.jsp' >繼續添加商品</a>");*/
} catch (Exception e) {
e.printStackTrace();
}
}
⑶ java上傳文件時怎樣設置如果文件的名稱中含有中文就不讓上傳怎麼做啊
在頁面中讀取到名字 用js去判斷。
⑷ Java web文件上傳怎麼限制文件類型
jsp頁面: <input type="file" name="upload" /> action: // 獲取文件類型和文件名,後綴必須為ContentType 和FileName private String[] uploadContentType; private String[] uploadFileName; set...get.
⑸ java script:如何在本地控制即將上傳的文件大小和類型
javascript好像沒辦法控制上傳文件的大小吧?
最好是用java判斷一下.這樣好一些
⑹ java 上傳文件 限制大小
這個一般我們在後台配置,比如你如果使用的是struts2框架,就可以在struts.xml中添加配置項:
<constant name="struts.multipart.maxSize" value="52428800" />
⑺ java用org.apache.commons.fileupload.servlet.ServletFileUpload上傳文件,限制上傳文件大小。急在線等。
eclipse項目包含build文件夾,myeclipse沒有這個文件夾,你在import的時候常規general下有4個選項,archive file,exists project,file system,prefrences(檔案文件或壓縮檔案,現存項目,文件系統,首選項),一般完整項目使用第二個,但是如果別人上傳的是文件,就使用文件系統導入,看看項目是什麼工具做的,再根據具體情況導入
⑻ Java web文件上傳怎麼限制文件類型
前端限制,用 正則匹配文件名後綴 /.([jJ][pP][gG]){1}$|.([jJ][pP][eE][gG]){1}$|.([gG][iI][fF]){1}$|.([pP][nN][gG]){1}$|.([bB][mM][pP]){1}$/ 這個是圖片正則匹配
服務端獲取文件,用正則匹配文件名後綴
=(MultipartHttpServletRequest)request;
MultipartFilefile=mrequest.getFile("file");
if(file!=null&&!file.isEmpty()){
//獲得文件類型(可以判斷如果不是指定類型,禁止上傳)
StringcontentType=file.getContentType();
⑼ java上傳文件格式要如何控制
文件上傳的時候,一定會打開一個文件選擇JFileChooser 他有個方法getSelectedFile() 這個方法返回他選擇的文件, 他選完你就判斷下 如果此文件的後綴不是你允許的你就直接一個對話框彈回去警告下, 如果是你允許的 就執行上傳操作好了.
⑽ java編程:文件上傳,,普通上傳沒有控制項,怎麼限制他的大小啊,比如上傳文件不得超過10M,求大神
在後台action中判斷,把上傳的文件流用位元組讀出來,判斷這個文件的位元組流大小。然後根據自己的設置的最多進行判斷,1kb=1024b