jsp限制文件上傳大小
⑴ 圖片上傳控制,總上傳文件的大小(jsp版)
把屬於某用戶的已經上傳了的所有照片大小計算出來;加上用戶正准備上傳的圖片大小,如果超過了某個值 就不許上傳;可以用js來判斷准備上傳文件的大小
js判斷上傳文件大小第一種方法是利用IE控制項
<html>
<input type="file" name="file1" onchange="ShowSize(this.value)">
<script language="javaScript">
<!--
function ShowSize(files)
{
var fso,f;
fso=new ActiveXObject("Scripting.FileSystemObject");
f=fso.GetFile(files);
if(f.size>1024*4){
alert(f.size+" Bytes");
}
}
//-->
</script>
</html>
第二種方法是利用IE下,Image對象的屬性,如:fileCreatedDate、fileModifiedDate、fileSize、fileUpdatedDate、filters
限制:<input type="text" size="4" value="10" name="fileSizeLimit" id="fileSizeLimit"/> K
<input type="file" name="file1" id="file1" size="40" onchange="changeSrc(this)"/>
<img src="about:blank" id="fileChecker" alt="test" height="18"/>
<script type="text/javascript">
var oFileChecker = document.getElementById("fileChecker");
function changeSrc(filePicker)
{
oFileChecker.src = filePicker.value;
}
oFileChecker.onreadystatechange = function ()
{
if (oFileChecker.readyState == "complete")
{
checkSize();
}
}
function checkSize()
{
var limit = document.getElementById("fileSizeLimit").value * 1024;
if (oFileChecker.fileSize > limit)
{
alert("too large");
}
else
{
alert("ok");
}
}
</script>
⑵ ueditor上傳圖片是哪個文件夾,如何限制 上傳圖片的大小(寬高)。
ueitor默認上傳路徑為:ueditor/jsp/upload/下邊以日期分文件夾(只有你正式上傳後這個目錄才會存在);這個路徑也是可配的;在jsp文件夾下,有一個fileUp.jsp,其中有如下代碼:
Uploaderup=newUploader(request);
up.setSavePath("upload");//保存路徑
將upload改成你想傳的路徑就好了
第二點問題:文件大小也能配置,同樣是在fileUp.jsp中,不過這里只能配大小,就是幾M,幾KB,代碼如下:
up.setAllowFiles(fileType);
up.setMaxSize(10000);//允許的文件最大尺寸,單位KB
圖片尺寸的大小也是能修改的:這個修改文件ueditor.config.js文件,找如下代碼:
//圖片上傳配置區
,imageUrl:URL+"jsp/imageUp.jsp"//圖片上傳提交地址
,imagePath:URL+"jsp/"//圖片修正地址,引用了fixedImagePath,如有特殊需求,可自行配置
//,imageFieldName:"upfile"//圖片數據的key,若此處修改,需要在後台對應文件修改對應參數
//,compressSide:0//等比壓縮的基準,確定maxImageSideLength參數的參照對象。0為按照最長邊,1為按照寬度,2為按照高度
,maxImageSideLength:2000
這個是參照jsp版本的,其它版本的目錄結構基本類似,就是文件格式是.asp,或者php,都一樣
⑶ 小弟我想在jsp頁面上傳文件 請教如何限
使用javascript,先在客戶端判斷要上傳的文件的大小,如果超過上限值,不提交。
服務端也得判斷。
jsp頁面上傳圖片之後頁面,當前頁面的顯示上傳的圖片可以自行更新。
第一種就是用JS直接在客戶端判斷截斷掉.或AJAX把後綴提交到伺服器再判斷.但這樣不安全.
第二種就是在伺服器端判斷了.
⑷ uploadify怎麼限制上傳文件大小
版本 uploadfy3
fileSizeLimit : 2048,
具體:
jsp頁面:
jQuery("#uploadify").uploadify({
。。。。
buttonText : 'SELECT', // The text to use for the browse button
checkExisting : false, // The path to a server-side script that checks for existing files on the server
debug : false, // Turn on swfUpload debugging mode
fileObjName : 'Filedata', // The name of the file object to use in your server-side script
fileSizeLimit : 2048, // The maximum size of an uploadable file in KB (Accepts units B KB MB GB if string, 0 for no limit)
fileTypeDesc : fileTypeDesc,
版本:jquery.uploadify.v2.1.0.min
'sizeLimit' : 2048*1024,
jQuery("#uploadify").uploadify({
。。。。。
'auto' : false,
'multi' : true,
'queueSizeLimit' : queueSizeLimit,
'buttonText' : 'BROWSE',
'sizeLimit' : 2048*1024,
⑸ jspSmartUpload組件實現上傳文件問題(正解追加50分)
參考這個.
SmartUpload mySmartUpload =new SmartUpload();
String deviceId =Sequence.getInstance().getSeqNumber("deviceInf");
// 初始化
final String upFileType="jpg|JPG|GIF|gif|bmp|BMP"; //上傳文件類型
final int MAXFILESIZE=100000; //上傳文件大小限制
String errMsg=null; //錯誤信息
boolean err=false; //錯誤標志
int fileSize=0; //文件大小
String url="images/"; //應保證在根目錄中有此目錄的存在
String fileName = "";
String fileType ="";
String normalPicName = deviceId+"n";
String alarmPicName = deviceId+"a";
mySmartUpload.initialize(pageContext);
// 上傳文件
mySmartUpload.upload();
//判斷將要上傳文件的總容量是否超過上限
int count = mySmartUpload.getSize();
if(count>MAXFILESIZE){
out.print ("<script>alert('上傳失敗!文件大小:"+count/1024+"K超出了限定的范圍(最大"+ MAXFILESIZE/1024+"K)');this.history.go(-1);</script>");
//response.sendRedirect("http://127.0.0.1:8080/javastudy/upload.htm");
}
// 循環取得上傳所有文件
else{
for(int i=0;i<mySmartUpload.getFiles().getCount();i++){
com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(i);
if (!myFile.isMissing()) {
String myFileName=myFile.getFileName();//得到文件名
//out.println(myFileName);
//if(myFileName.length()>0){ //取得不帶後綴的文件名
//String subFileName=myFileName.substring(0,myFileName.lastIndexOf('.'));
//}
fileType=myFile.getFileExt();//得到文件擴展名
fileType=fileType.toLowerCase(); //將擴展名轉換成小寫
if (upFileType.indexOf(fileType)==-1){
err=true;
errMsg="文件"+myFileName+"上傳失敗!只允許上傳以下格式的文件:"+upFileType;
}
//得到單個文件大小
//fileSize+=myFile.getSize();
//if (err==false&&fileSize>MAXFILESIZE){
// err=true;
// errMsg="上傳失敗!文件大小超出了限定的范圍(最大"+MAXFILESIZE/1024+"K)";
//}
if(err==false){
//取得路徑
//String adss=getServletContext().getRealPath("/")+"JSP\\";
//String trace=adss+myFileName;
//保存文件
//String newFileName="001."+fileType; //可自動生成文件名以防止同名覆蓋
//myFile.saveAs(trace);
//myFile.saveAs("enterprise/images/"+myFileName);
Calendar calendar = Calendar.getInstance();
fileName = String.valueOf(calendar.getTimeInMillis());
if(i<=0){
normalPicName=normalPicName+"."+fileType;
String saveurl=request.getRealPath("/")+url;
saveurl+=normalPicName; //保存路徑
myFile.saveAs(saveurl,mySmartUpload.SAVE_PHYSICAL);
}
else{
alarmPicName=alarmPicName+"."+fileType;
String saveurl=request.getRealPath("/")+url;
saveurl+=alarmPicName; //保存路徑
myFile.saveAs(saveurl,mySmartUpload.SAVE_PHYSICAL);
}
}else{
out.print ("<script>alert('"+errMsg+"');this.history.go(-1);</script>");
}
}
}