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

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

        size不好用呢
 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);
   }
}

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

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

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

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

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

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

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