2 csdnzlw csdnzlw 于 2016.02.04 11:14 提问

java 后台如何判断上传图片大小。

java 后台如何判断上传图片大小。File file = new File(path + "\" + fileName+".jpg");
long size = file.length();

        size不好用呢

6个回答

91program
91program   Ds   Rxr 2016.02.04 11:22

上传图片,一般先要上传一些图片的属性,如:文件名,大小(长和宽)等,然后再上传图片数据。
否则,传到后台,后台就只能使用默认的名称,而无法与上传方建立对应关系。

或者,上传后由后台解析图片而获取到图片的大小。

beacon_2011
beacon_2011   Rxr 2016.02.05 16:18

BufferedImage sourceImg = javax.imageio.ImageIO.read(in);可得到宽高 sourceImg.getWidth()
sourceImg.getHeight()
File file=new File(path);
ImageIO.write(sourceImg, 后缀, file);
file.length();
将图片的文件转为File类型,有length方法可得到文件大小,格式就看文件名的后缀了

rui888
rui888   Ds   Rxr 2016.02.04 11:22
 import java.io.File;

public class Main {
   public static long getFileSize(String filename) {
      File file = new File(filename);
      if (!file.exists() || !file.isFile()) {
         System.out.println("File doesn\'t exist");
         return -1;
      }
      return file.length();
   }
   public static void main(String[] args) {
      long size = getFileSize("c:/java.txt");
      System.out.println("Filesize in bytes: " + size);
   }
}
csdnzlw
csdnzlw   2016.02.04 11:46

后台解析图片而获取到图片的大小。
如何解析判断大小。

NUC_White
NUC_White   2016.02.04 14:56

这个好解决,是可以判断大小,你们讲IO流的时候,读流有个方法叫inputStream.available()来获取文件的总大小。
public int available() throws IOException
返回此输入流下一个方法调用可以不受阻塞地从此输入流读取(或跳过)的估计字节数。下一个调用可能是同一个线程,也可能是另一个线程。一次读取或跳过此估计数个字节不会受阻塞,但读取或跳过的字节数可能小于该数。
注意:
有些 InputStream 的实现将返回流中的字节总数,但也有很多实现不会这样做。试图使用此方法的返回值分配缓冲区,以保存此流所有数据的做法是不正确的。
如果已经调用 close() 方法关闭了此输入流,那么此方法的子类实现可以选择抛出 IOException。
类 InputStream 的 available 方法总是返回 0。
此方法应该由子类重写。

返回:
可以不受阻塞地从此输入流读取(或跳过)的估计字节数;如果到达输入流末尾,则返回 0。
抛出:
IOException - 如果发生 I/O 错误。

xionglangs
xionglangs   Rxr 2016.02.04 15:39

![图片说明](http://img.ask.csdn.net/upload/201602/04/1454571525_696704.png)图片说明用uploadify插件

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!