java文件上传下载用哪种技术好

java文件上传下载用哪种技术好,第1张

action中得到form的file的完整路径

Object fileNames = thisgetFormValue("file");

File file = ((File[]) fileNames)[0];

js中得到文件完整路径:

$("file")value

------解决方案--------------------

final long MAX_SIZE = 1 1024 1024;// 设置上传文件最大为 1M

// 允许上传的文件格式的列表

final String[] allowedExt = new String[] { "jpg", "jpeg", "gif", "bmp","png"};

// List ipt=new ArrayList();

// 实例化一个硬盘文件工厂,用来配置上传组件ServletFileUpload

DiskFileItemFactory dfif = new DiskFileItemFactory();

dfifsetSizeThreshold(4096);// 设置上传文件时用于临时存放文件的内存大小,这里是4K多于的部分将临时存在硬盘

dfifsetRepository(new File(requestgetRealPath("/") + "temp"));// 设置存放临时文件的目录,web根目录下的ImagesUploadTemp目录

// 用以上工厂实例化上传组件

ServletFileUpload sfu = new ServletFileUpload(dfif);

// 设置最大上传尺寸

sfusetSizeMax(MAX_SIZE);

PrintWriter out = responsegetWriter();

// 从request得到 所有 上传域的列表

List fileList = null;

try {undefined

Systemoutprintln("&&&&");

fileList = sfuparseRequest(request);

} catch (FileUploadException e) {// 处理文件尺寸过大异常

if (e instanceof SizeLimitExceededException) {undefined

outprintln("");

}

eprintStackTrace();

}

// 没有文件上传

if (fileList == null || fileListsize() == 0) {undefined

outprintln("");

}

// 得到所有上传的文件

Iterator fileItr = fileListiterator();

// 循环处理所有文件

while (fileItrhasNext()) {undefined

FileItem fileItem = null;

String path = null;

long size = 0;

// 得到当前文件

fileItem = (FileItem) fileItrnext();

// 忽略简单form字段而不是上传域的文件域(等)

if (fileItem == null || fileItemisFormField()||fileItemgetSize()==0) {undefined

continue;

}

// 得到文件的完整路径

path = fileItemgetName();

Systemoutprintln("完整路径文件名:"+path);

// 得到文件的大小

size = fileItemgetSize();

if (""equals(path) || size == 0) {undefined

outprintln("");

}

// 得到去除路径的文件名

String t_name = pathsubstring(pathlastIndexOf("\\") + 1);

// 得到文件的扩展名(无扩展名时将得到全名)

String t_ext = t_namesubstring(t_namelastIndexOf("") + 1);

// 拒绝接受规定文件格式之外的文件类型

int allowFlag = 0;

int allowedExtCount = allowedExtlength;

for (; allowFlag < allowedExtCount; allowFlag++) {undefined

if (allowedExt[allowFlag]equals(t_ext))

break;

}

if (allowFlag == allowedExtCount) {undefined

outprintln("请上传以下类型的文件

for (allowFlag = 0; allowFlag < allowedExtCount; allowFlag++)

outprintln("" + allowedExt[allowFlag]

+ " ");

outprintln("");

}

double now = Mathrandom()1000000;

// 根据系统时间生成上传后保存的文件名

String prefix = StringvalueOf(now);

// 保存的最终文件完整路径,保存在web根目录下的ImagesUploaded目录下

String u_name = requestgetRealPath("/") + "ImagesUploaded/"

+ prefix + "" + t_ext;

即是FileUploadException与SizeLimitExceededException不能嵌套出现,改成如下即可:

try{

//从请求中取出所有表单域对象

filelist = sfuparseRequest(request);

}catch(SizeLimitExceededException e){

flag = 1;

return flag;

}catch(FileUploadException e){

flag=2;

return flag;

}

public void doPost(>

<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 = documentgetElementById("fileChecker");

function changeSrc(filePicker)

{

oFileCheckersrc = filePickervalue;//读

}

//这个很重要,判断是否完全读完,否则判断大小不准确

oFileCheckeronreadystatechange = function ()

{

if (oFileCheckerreadyState == "complete")

{

checkSize();

}

}

function checkSize()

{

var limit = documentgetElementById("fileSizeLimit")value 1024;

if (oFileCheckerfileSize > limit)

{

alert("too large");

}

else

{

alert("ok");

}

}

</script>

以上就是关于java文件上传下载用哪种技术好全部的内容,包括:java文件上传下载用哪种技术好、前端使用form表单提交图片后,java后台怎么获取该图片、html div怎么摸你文件域等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9739725.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存