//找到要下载的文件
url=new URL( "http://www.baidu.com/uploadfile/oracle.txt")
//根据响应获取文件大小
HttpURLConnection urlcon=(HttpURLConnection)url.openConnection()
//获取相应的文件长度
fileLength=urlcon.getContentLength()
备注:扒喊以上嫌闹方法中url变换即可,下面的方法不用变更,即可获取到对应下载文件的大小。
是的,JAVA上传芹告和下载的文件大小是可以不同的。上传的文件的最大文件大小完全取决于应用程序的处理,而下载的文件大小受到冲渗 JVM(Java虚拟机)的限制,如果嫌判明空间不够或者受到系统资源的限制,文件将无法下载。1、response.reset()不应该去reset
2、你参考下我以前写的这段下载pdf的文件吧,稍改下肯定能解决楼主的问题了。
ServletOutputStream out 启缓= res.getOutputStream()// 耐袜用于解决下载后的中文乱码
String contentType = getContentType(fileExt)
// contentType=contentType+"charset=gbk"
res.setContentType(contentType)
System.out.println("显示下载的名称是:-------------------------------"
+ temp)
String contentHeader = "attachment" + "" + "filename=\""
+ URLEncoder.encode(temp, "UTF-8") + "\""
res.setHeader("Content-disposition", contentHeader)
System.out.println("contentHeader is =" + contentHeader)
// int MAX_FILE_SIZE = 3 * 1024 * 1024 //此处设置文件最大尺寸,对本程序,不设置即可,3M
int byte_unit = 1024
// byte[] buffer = new byte[MAX_FILE_SIZE]
byte[] buffer = new byte[byte_unit]// 一次性读取文件的数据长度
int length = 0
while ((length = is.read(buffer)) != -1) {
out.write(buffer, 0, length)
}
if (is != null)
is.close()
if (out != null) {
out.flush()
out.close()
}
// 获得内容类型
private static String getContentType(String fileExt) {
String contentType = " "
if (fileExt == null)
contentType = " "
else if (fileExt.equals("doc"))
contentType = "application/msword "
else if (fileExt.equals("pdf"))
contentType = "application/pdf"
else if (fileExt.equals("jpg"))
contentType = "image/jpeg"
else if (fileExt.equals("gif"))
contentType = "image/gif "
else if (fileExt.equals("bmp"))
contentType 昌旁激= "image/bmp "
else if (fileExt.equals("txt"))
contentType = "text/plain"
else if (fileExt.equals("xls"))
contentType = "application/-excel"
return contentType
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)