下面是我所要上傳的網頁 我上傳的位置將在C:\\upload 資料夾中
而我在網頁中有一個是檔案名 我想借檔案名 跟上傳位置來當作下面JAVA程式的讀取檔案位置
如果說我的圖片名 為 DOG.jpg
合在一起的話上傳成為
C:\\upload\dog.jpg <form name="upload" enctype="multipart/form-data" method="post" action="upload.jsp">
相片名稱 :
<input type="text" name="pictureName" value="" /><br>
相片位置 :
<input type="file" name="picture" value="" size="30"/><br>
<input type="submit" value="確定">
<input type="reset" value="清除" >
</form>
下面為我的JAVA程式碼 Java code
import java.io.*;import java.util.*;
import java.text.*;
//import java.awt.*;
import java.awt.image.*;
import java.awt.geom.AffineTransform;
import javax.imageio.*;
import javax.imageio.stream.*;import mediautil.gen.*;
import mediautil.gen.directio.*;
import mediautil.image.*;
import mediautil.image.jpeg.*;
public class SetGpsInfo { public static void main(String[] args) throws Exception {
我想將這行c:/dog.jpg的檔案位置這是固定的 ,我想改成先前的上傳位置C:/upload/dog.jpg
我更不知道的為壓下網址確認鍵之後的觸發
我該怎麼將這行位置傳送給這個JAVA程式使用來當他的讀檔位置,我更想知道的事壓下確認鍵後怎麼自動執行這個class SetGpsInfo JAVA程式,而且該如何指令是這個JAVA程式
有人知道我該要怎麼做嗎? 如果能的話請可以修改給我看嗎?
能的話可以順便說明這個地方是屬於JSP還是JAVA的哪個部份
InputStream fip = new BufferedInputStream(new FileInputStream("c://dog.jpg"));
LLJTran llj = new LLJTran(fip);
try {
llj.read(LLJTran.READ_INFO, true);
} catch (LLJTranException e) {
e.printStackTrace();
} AbstractImageInfo imageInfo = llj.getImageInfo(); if(! (imageInfo instanceof Exif))
{
System.out.println("Sorry Image Does not have Exif. Exitting." + imageInfo);
System.exit(1);
} Exif exif = (Exif) imageInfo;
IFD mainIfd = exif.getIFDs()[0];
IFD gpsIfd = mainIfd.getIFD(Exif.GPSINFO);
Entry e; // Set Latitude
e = new Entry(Exif.ASCII);
e.setValue(0, 'N');
gpsIfd.setEntry(new Integer(Exif.GPSLatitudeRef), 0, e);
e = new Entry(Exif.RATIONAL);
e.setValue(0, new Rational(45, 1));
e.setValue(1, new Rational(35, 1));
e.setValue(2, new Rational(25, 1));
gpsIfd.setEntry(new Integer(Exif.GPSLatitude), 0, e);
e = new Entry(Exif.BYTE); // Set Longitude
e = new Entry(Exif.ASCII);
e.setValue(0, 'E');
gpsIfd.setEntry(new Integer(Exif.GPSLongitudeRef), 0, e);
e = new Entry(Exif.RATIONAL);
e.setValue(0, new Rational(87, 1));
e.setValue(1, new Rational(40, 1));
e.setValue(2, new Rational(30, 1));
gpsIfd.setEntry(new Integer(Exif.GPSLongitude), 0, e);
e = new Entry(Exif.BYTE); e.setValue(0, new Integer(1)); // This picture is taken underwater :-)
// Use 0 if it is taken above sea
// level
gpsIfd.setEntry(new Integer(Exif.GPSAltitudeRef), 0, e);
e = new Entry(Exif.RATIONAL);
e.setValue(0, new Rational(100, 1));
gpsIfd.setEntry(new Integer(Exif.GPSAltitude), 0, e); llj.refreshAppx(); // Recreate Marker Data for changes done OutputStream out = new BufferedOutputStream(new FileOutputStream("c://w.jpg")); // Transfer remaining of image to output with new header.
llj.xferInfo(null, out, LLJTran.REPLACE, LLJTran.REPLACE); fip.close();
out.close(); llj.freeMemory();
}
}
而我在網頁中有一個是檔案名 我想借檔案名 跟上傳位置來當作下面JAVA程式的讀取檔案位置
如果說我的圖片名 為 DOG.jpg
合在一起的話上傳成為
C:\\upload\dog.jpg <form name="upload" enctype="multipart/form-data" method="post" action="upload.jsp">
相片名稱 :
<input type="text" name="pictureName" value="" /><br>
相片位置 :
<input type="file" name="picture" value="" size="30"/><br>
<input type="submit" value="確定">
<input type="reset" value="清除" >
</form>
下面為我的JAVA程式碼 Java code
import java.io.*;import java.util.*;
import java.text.*;
//import java.awt.*;
import java.awt.image.*;
import java.awt.geom.AffineTransform;
import javax.imageio.*;
import javax.imageio.stream.*;import mediautil.gen.*;
import mediautil.gen.directio.*;
import mediautil.image.*;
import mediautil.image.jpeg.*;
public class SetGpsInfo { public static void main(String[] args) throws Exception {
我想將這行c:/dog.jpg的檔案位置這是固定的 ,我想改成先前的上傳位置C:/upload/dog.jpg
我更不知道的為壓下網址確認鍵之後的觸發
我該怎麼將這行位置傳送給這個JAVA程式使用來當他的讀檔位置,我更想知道的事壓下確認鍵後怎麼自動執行這個class SetGpsInfo JAVA程式,而且該如何指令是這個JAVA程式
有人知道我該要怎麼做嗎? 如果能的話請可以修改給我看嗎?
能的話可以順便說明這個地方是屬於JSP還是JAVA的哪個部份
InputStream fip = new BufferedInputStream(new FileInputStream("c://dog.jpg"));
LLJTran llj = new LLJTran(fip);
try {
llj.read(LLJTran.READ_INFO, true);
} catch (LLJTranException e) {
e.printStackTrace();
} AbstractImageInfo imageInfo = llj.getImageInfo(); if(! (imageInfo instanceof Exif))
{
System.out.println("Sorry Image Does not have Exif. Exitting." + imageInfo);
System.exit(1);
} Exif exif = (Exif) imageInfo;
IFD mainIfd = exif.getIFDs()[0];
IFD gpsIfd = mainIfd.getIFD(Exif.GPSINFO);
Entry e; // Set Latitude
e = new Entry(Exif.ASCII);
e.setValue(0, 'N');
gpsIfd.setEntry(new Integer(Exif.GPSLatitudeRef), 0, e);
e = new Entry(Exif.RATIONAL);
e.setValue(0, new Rational(45, 1));
e.setValue(1, new Rational(35, 1));
e.setValue(2, new Rational(25, 1));
gpsIfd.setEntry(new Integer(Exif.GPSLatitude), 0, e);
e = new Entry(Exif.BYTE); // Set Longitude
e = new Entry(Exif.ASCII);
e.setValue(0, 'E');
gpsIfd.setEntry(new Integer(Exif.GPSLongitudeRef), 0, e);
e = new Entry(Exif.RATIONAL);
e.setValue(0, new Rational(87, 1));
e.setValue(1, new Rational(40, 1));
e.setValue(2, new Rational(30, 1));
gpsIfd.setEntry(new Integer(Exif.GPSLongitude), 0, e);
e = new Entry(Exif.BYTE); e.setValue(0, new Integer(1)); // This picture is taken underwater :-)
// Use 0 if it is taken above sea
// level
gpsIfd.setEntry(new Integer(Exif.GPSAltitudeRef), 0, e);
e = new Entry(Exif.RATIONAL);
e.setValue(0, new Rational(100, 1));
gpsIfd.setEntry(new Integer(Exif.GPSAltitude), 0, e); llj.refreshAppx(); // Recreate Marker Data for changes done OutputStream out = new BufferedOutputStream(new FileOutputStream("c://w.jpg")); // Transfer remaining of image to output with new header.
llj.xferInfo(null, out, LLJTran.REPLACE, LLJTran.REPLACE); fip.close();
out.close(); llj.freeMemory();
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货