想要達(dá)到你說的效果,用Struts不行的,要不然不會出現(xiàn)倆頁面的??梢杂胘s庫的window.open來做,參數(shù)的傳遞可以用json。這樣會彈出一個自定義的新窗口,不用走什么請求。
專注于為中小企業(yè)提供網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)汨羅免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上1000+企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
文件夾:build-存放編譯后的class文件
nbproject-存放項目的具體配置文件
src-java源代碼存放文件夾
test-JUnit測試文件存放位置
Build.xml構(gòu)建描述文件,因為Netbeans的編譯打包是基于ant的,build就是ant實現(xiàn)自動編譯打包的描述文件。
manifest.mf是打包的時候需要的一個清單文件,是對打包后的jar包中的文件的一個描述下文件。
original.java,.netbeans_automatic_build,這兩個文件不知道你用的什么Netbeans版本,在我的版本中并未生成此文件。
build-impl.xml是對Build.xml文件的具體描述,Build.xml其實并未實現(xiàn)具體的ant構(gòu)建腳本,具體是在該文件中實現(xiàn)的,如果你看過build.xml的源代碼,就會發(fā)現(xiàn)一句import file="nbproject/build-impl.xml"/,這你就知道是什么意思了。
圖片上傳后在網(wǎng)頁上直接讀取上傳后的地址進(jìn)行預(yù)覽,就是說這個時候圖片已經(jīng)上傳到服務(wù)器了,如果要寫的嚴(yán)謹(jǐn)一些,可以在預(yù)覽后進(jìn)行保存操作,如果不保存,則再寫一條語句把上傳上去的文件刪除
把圖片按照規(guī)定的比例壓縮,然后保存至FTP,列表讀取縮略圖,單擊顯示原圖。
/**
*?壓縮圖片方法一(高質(zhì)量)
*?@param?oldFile?將要壓縮的圖片
*?@param?width?壓縮寬
*?@param?height?壓縮高
*?@param?smallIcon?壓縮圖片后,添加的擴(kuò)展名(在圖片后綴名前添加)
*?@param?quality?壓縮質(zhì)量?范圍:i0.0-1.0/i?高質(zhì)量:i0.75/i?中等質(zhì)量:i0.5/i?低質(zhì)量:i0.25/i
*?@param?percentage?是否等比壓縮?若true寬高比率將將自動調(diào)整
*/
public?static?void?compressImage(String?oldFile,?int?width,?int?height,?String?smallIcon,
float?quality,?boolean?percentage)?{
try?{
File?file?=?new?File(oldFile);
//?驗證文件是否存在
if(!file.exists())
throw?new?FileNotFoundException("找不到原圖片!");
//?獲取圖片信息
BufferedImage?image?=?ImageIO.read(file);
int?orginalWidth?=?image.getWidth();
int?orginalHeight?=?image.getHeight();
//?驗證壓縮圖片信息
if?(width?=?0?||?height?=?0?||?!Pattern.matches("^[1-9]\\d*$",?String.valueOf(width))
||?!Pattern.matches("^[1-9]\\d*$",?String.valueOf(height)))
throw?new?Exception("圖片壓縮后的高寬有誤!");
//?等比壓縮
if?(percentage)?{
double?rate1?=?((double)?orginalWidth)?/?(double)?width?+?0.1;
double?rate2?=?((double)?orginalHeight)?/?(double)?height?+?0.1;
double?rate?=?rate1??rate2???rate1?:?rate2;
width?=?(int)?(((double)?orginalWidth)?/?rate);
height?=?(int)?(((double)?orginalHeight)?/?rate);
}
//?壓縮后的文件名
String?filePrex?=?oldFile.substring(0,?oldFile.lastIndexOf('.'));
String?newImage?=?filePrex?+?smallIcon?+?oldFile.substring(filePrex.length());
//?壓縮文件存放位置
File?savedFile?=?new?File(newImage);
//?創(chuàng)建一個新的文件
savedFile.createNewFile();
//?創(chuàng)建原圖像的縮放版本
Image?image2?=?image.getScaledInstance(width,?height,?Image.SCALE_AREA_AVERAGING);
//?創(chuàng)建數(shù)據(jù)緩沖區(qū)圖像
BufferedImage?bufImage?=?new?BufferedImage(width,?height,?BufferedImage.TYPE_INT_RGB);
//?創(chuàng)建一個Graphics2D
Graphics2D?g2?=?bufImage.createGraphics();
//?重繪圖像
g2.drawImage(image2,?0,?0,?width,?height,?null);
g2.dispose();
//?過濾像素矩陣
float[]?kernelData?=?{?
-0.125f,?-0.125f,?-0.125f,?
-0.125f,?2,?-0.125f,?-0.125f,?
-0.125f,?-0.125f?};
Kernel?kernel?=?new?Kernel(3,?3,?kernelData);
//?按核數(shù)學(xué)源圖像邊緣的像素復(fù)制為目標(biāo)中相應(yīng)的像素輸出像素
ConvolveOp?cOp?=?new?ConvolveOp(kernel,?ConvolveOp.EDGE_NO_OP,?null);
//?轉(zhuǎn)換像素
bufImage?=?cOp.filter(bufImage,?null);
FileOutputStream?out?=?new?FileOutputStream(savedFile);
JPEGImageEncoder?encoder?=?JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam?param?=?encoder.getDefaultJPEGEncodeParam(bufImage);
//?設(shè)置壓縮質(zhì)量
param.setQuality(quality,?true);
encoder.encode(bufImage,?param);
out.close();
System.out.println(newImage);
}?catch?(Exception?e)?{
e.printStackTrace();
System.out.println("壓縮失敗!"?+?e.getMessage());
}
}