我有一个java applet,用于将文件从本地计算机上传到Web服务服务器。当我在eclipse中运行它时工作正常。但是当它在浏览器中运行时它会给文件找不到异常。任何人都知道为什么??
//////////////////////// HTML文件
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<applet code="JarExampleApplet.class" archive="JarExampleApplet.jar" height="200" width="400"></applet>
</body>
</html>
/////////////小程序代码
import java.applet.Applet;
import java.awt.Graphics;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import javax.ws.rs.core.MediaType;
import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.api.client.config.ClientConfig;
import com.sun.jersey.api.client.config.DefaultClientConfig;
import com.sun.jersey.api.client.filter.LoggingFilter;
import com.sun.jersey.core.util.Base64;
@SuppressWarnings("serial")
public class JarExampleApplet extends Applet {
public static final String BASE_URI = "http://localhost:8080/RESTfulWS";
public static final String PATH_NAME = "/file/upload_json/";
public void init ()
{
JarExampleApplet my_client = new JarExampleApplet();
File file_upload = new File("C:/Grails.pdf");
try{
my_client.sendFileJSON(file_upload);
}
catch(Exception ex)
{
System.out.println("Exception : " + ex);
}
}
public void paint(Graphics g) {
g.drawString("This Applet was read from a .jar file.", 0, 25);
}
public void sendFileJSON(File file_upload) throws JSONException, IOException{
ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
client.addFilter(new LoggingFilter());
WebResource resource = client.resource(BASE_URI);
WebResource service = resource.path("rest").path(PATH_NAME);
JSONObject data_file = new JSONObject();
data_file.put("file_name", file_upload.getName());
data_file.put("file", convertFileToString(file_upload));
ClientResponse client_response = service.accept(MediaType.APPLICATION_JSON).post(ClientResponse.class, data_file);
System.out.println(" "+client_response);
System.out.println("Status: "+client_response.getStatus());
client.destroy();
}
//Convert my file to a Base64 String
private String convertFileToString(File file) throws IOException{
byte[] bytes = Files.readAllBytes(file.toPath());
return new String(Base64.encode(bytes));
}
}