下面是我所要上傳的網頁  我上傳的位置將在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();
    }
}