如果文件是一个简单的文件(例如PDF),只要放一个文件URL的链接,手机导航器就会把文件下载到手机上。如果生成了文件,则必须创建一个 servlet 来进行下载:
public class ServletDownloadDemo extends HttpServlet{
private static final int BYTES_DOWNLOAD = 1024;
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws IOException{
response.setContentType("text/plain");
response.setHeader("Content-Disposition",
"attachment;filename=downloadname.txt");
ServletContext ctx = getServletContext();
InputStream is = ctx.getResourceAsStream("/testing.txt");
int read=0;
byte[] bytes = new byte[BYTES_DOWNLOAD];
OutputStream os = response.getOutputStream();
while((read = is.read(bytes))!= -1){
os.write(bytes, 0, read);
}
os.flush();
os.close();
}
}
在用于发布请求的 GWT 中,您可以使用 FormPanel 将请求发送到隐藏的 iframe。
FormPanel form = new FormPanel();
form.setMethod(FormPanel.METHOD_POST);
form.setAction("/downloadServlet");
FlowPanel hiddenPanel = new FlowPanel();
hiddenPanel.add(new Hidden("name1", "value"));
hiddenPanel.add(new Hidden("name2", "value"));
form.setWidget(hiddenPanel);
RootPanel.get().add(form);
form.submit();
或者你可以放一个真实的表格。
但是使用PhoneGap,您可以使用文件API,但您必须询问用户在他的手机中写入文件的位置。如果需要,您可以通过 RPC 请求下载文件内容,然后写入文件。