文件目录:

uploadfile文件会将文件提交给net.iesun.util.Images类:
<span style="font-size:18px;">package net.iesun.util;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.*;
import java.awt.*;
import java.awt.image.*;
import java.awt.color.*;
import javax.imageio.*;
import javax.imageio.stream.*;
import javax.imageio.metadata.*;
import javax.servlet.jsp.PageContext;
import org.w3c.dom.*;
import java.awt.Rectangle;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.PageContext;
import com.jspsmart.upload.File;
import com.jspsmart.upload.SmartUpload;
public class Images {
public static String upload(String rootdir,String sPath,String FileName,PageContext pagecontext)
{
if(sPath==null)sPath="/upload";
if(sPath.equals(""))sPath="/upload";
if(FileName==null)FileName="";
if(rootdir.equals(""))rootdir=pagecontext.getServletContext().getRealPath("/");
String rpath=rootdir+"/"+sPath;
java.io.File f = new java.io.File(rpath);
if(!f.exists())f.mkdirs();
rpath=f.getPath();
try {
SmartUpload mySmartUpload = new SmartUpload();
mySmartUpload.initialize(pagecontext);
//mySmartUpload.initialize(config, request, response);
mySmartUpload.setMaxFileSize(20480 * 1024);
mySmartUpload.setAllowedFilesList("jpg,JPG,gif,GIF,png,PNG,jpeg,JPEG,bmp,BMP,tif,TIF,tiff,TIFF,swf,SWF,flv,FLV,doc,DOC,txt,TXT,xls,CLS,csv,CSV,ppt,PPT,zip,ZIP,rar,RAR");
mySmartUpload.upload();
File myFile = mySmartUpload.getFiles().getFile(0);
if (!myFile.isMissing()) {
if(FileName.equals(""))FileName=myFile.getFileName();
if(FileName.equals(""))
{
Date currTime = new Date();
SimpleDateFormat formatter2 = new SimpleDateFormat("yyyyMMddhhmmssSSS", Locale.US);
FileName = new String((formatter2.format(currTime)).getBytes("iso-8859-1"));
}
String ext = myFile.getFileExt();
FileName = FileName + "." + ext;
myFile.saveAs(rpath + "/" + FileName,mySmartUpload.SE_AUTO);
}
//response.sendRedirect("/uploadimage.jsp?Picurl="+ FileName + "&step=2");
} catch (Exception e) {
e.printStackTrace();
return "ERR:"+e.getMessage();
}
return FileName;
}
/**
* 获取文件扩展名
* @param file
* @return
*/
public static String getFileExt(String fileName) {
if (fileName.lastIndexOf(".") != -1 && fileName.lastIndexOf(".") != 0) {
return fileName.substring(fileName.lastIndexOf(".") + 1);
} else {
return "";
}
}
public static void ResizeImage(String SourceFile,String TargetFile,int nw,int nh){
try
{
//System.out.println("生成缩略图源文件"+SourceFile);
java.io.File file = new java.io.File(SourceFile); //读入文件
if(!file.exists())return;
BufferedImage img=null;
try
{
img=javax.imageio.ImageIO.read(file);
}
catch(Exception e)
{
img=readImage(file);
}
int h = img.getHeight();
int w = img.getWidth();
//System.out.println("生成目标缩略图"+TargetFile);
FileOutputStream out=new FileOutputStream(TargetFile); //输出到文件流
if(nw==0&&nh==0)nw=80;
if(nw==0)nw=w*nw/h;
if(nh==0)nh=h*nw/w;
//java.io.ByteArrayOutputStream out = new java.io.ByteArrayOutputStream();
BufferedImage dest = new BufferedImage(nw, nh,BufferedImage.TYPE_INT_RGB);//TYPE_4BYTE_ABGR);
dest.getGraphics().drawImage(img,0,0,nw, nh,null);
ImageIO.write(dest, "jpg", out);
out.close();
/*
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(dest); //近JPEG编码
out.close();
*/
}
catch(Exception e)
{
e.printStackTrace();
System.out.println("生成缩略图bug"+e.getMessage());
}
}
// extract metadata
public static BufferedImage readImage(java.io.File file) throws IOException {
// Get an ImageReader.
try {
ImageInputStream input = ImageIO.createImageInputStream(file);
Iterator readers = ImageIO.getImageReaders(input);
if (readers == null || !readers.hasNext()) {
return null;
}
ImageReader reader = (ImageReader) readers.next();
reader.setInput(input);
String format = reader.getFormatName();
if ("JPEG".equalsIgnoreCase(format) || "JPG".equalsIgnoreCase(format)) {
try {
IIOMetadata metadata = reader.getImageMetadata(0);
String metadataFormat = metadata.getNativeMetadataFormatName();
IIOMetadataNode iioNode = (IIOMetadataNode) metadata.getAsTree(metadataFormat);
NodeList children = iioNode.getElementsByTagName("app14Adobe");
if (children.getLength() > 0) {
try {
iioNode = (IIOMetadataNode) children.item(0);
int transform = Integer.parseInt(iioNode.getAttribute("transform"));
Raster raster = reader.readRaster(0, reader.getDefaultReadParam());
if (input != null) {
input.close();
}
reader.dispose();
return createJPEG4(raster, transform);
} catch (Exception e) {
// TODO Auto-generated catch block
//log.error(e);
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
// log.error(e);
// LogWriter.log(file.getPath());
}
}
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
return null;
}
return null;
}
/**
*
* Javas ImageIO cant process 4-component images
*
* and Java2D cant apply AffineTransformOp either,
*
* so convert raster data to RGB.
*
* Technique due to MArk Stephens.
*
* Free for any use.
*
*/
private static BufferedImage createJPEG4(Raster raster, int xform) {
try {
int w = raster.getWidth();
int h = raster.getHeight();
byte[] rgb = new byte[w * h * 3];
// if (Adobe_APP14 and transform==2) then YCCK else
// CMYK
if (xform == 2) { // YCCK --
// Adobe
float[] Y = raster.getSamples(0, 0, w, h, 0, (float[]) null);
float[] Cb = raster.getSamples(0, 0, w, h, 1, (float[]) null);
float[] Cr = raster.getSamples(0, 0, w, h, 2, (float[]) null);
float[] K = raster.getSamples(0, 0, w, h, 3, (float[]) null);
for (int i = 0, imax = Y.length, base = 0; i < imax; i++, base += 3) {
float k = 220 - K[i], y = 255 - Y[i], cb = 255 - Cb[i], cr = 255 - Cr[i];
double val = y + 1.402 * (cr - 128) - k;
val = (val - 128) * .65f + 128;
rgb[base] = val < 0.0 ? (byte) 0
: val > 255.0 ? (byte) 0xff : (byte) (val + 0.5);
val = y - 0.34414 * (cb - 128) - 0.71414 * (cr - 128) - k;
val = (val - 128) * .65f + 128;
rgb[base + 1] = val < 0.0 ? (byte) 0
: val > 255.0 ? (byte) 0xff : (byte) (val + 0.5);
val = y + 1.772 * (cb - 128) - k;
val = (val - 128) * .65f + 128;
rgb[base + 2] = val < 0.0 ? (byte) 0
: val > 255.0 ? (byte) 0xff : (byte) (val + 0.5);
}
} else {
// assert xform==0: xform;
// CMYK
int[] C = raster.getSamples(0, 0, w, h, 0, (int[]) null);
int[] M = raster.getSamples(0, 0, w, h, 1, (int[]) null);
int[] Y = raster.getSamples(0, 0, w, h, 2, (int[]) null);
int[] K = raster.getSamples(0, 0, w, h, 3, (int[]) null);
for (int i = 0, imax = C.length, base = 0; i < imax; i++, base += 3) {
int c = 255 - C[i];
int m = 255 - M[i];
int y = 255 - Y[i];
int k = 255 - K[i];
float kk = k / 255f;
rgb[base] = (byte) (255 - Math.min(255f, c * kk + k));
rgb[base + 1] = (byte) (255 - Math.min(255f, m * kk + k));
rgb[base + 2] = (byte) (255 - Math.min(255f, y * kk + k));
}
}
// from other image types we know InterleavedRasters can be
// manipulated by AffineTransformOp, so create one of those.
raster = Raster.createInterleavedRaster(new DataBufferByte(rgb,
rgb.length), w, h, w * 3, 3, new int[]{0, 1, 2}, null);
ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_sRGB);
ColorModel cm = new ComponentColorModel(cs, false, true,
Transparency.OPAQUE, DataBuffer.TYPE_BYTE);
return new BufferedImage(cm, (WritableRaster) raster, true, null);
} catch (Exception e) {
// TODO Auto-generated catch block
//log.error(e);
return null;
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//ResizeImage("C:\\aaa.jpg","C:\\rgb.jpg",30,0);
//ResizeImage("C:\\111.jpg","C:\\cmyk.jpg",30,0);
String sss="ERR:asdfasdfasfd";
if(sss.indexOf(":")>0)System.out.println(sss);
}
}
</span>
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-27832-3.html
小米公司知道国家质检总局抢不到小米手机后
只是一种在军事上表现一种姿态
以前最起码吃