|
||||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object com.zhuozhengsoft.pageoffice.FileSaver
public class FileSaver
FileSaver 类用来接收并保存 PageOfficeCtrl 或 FileMakerCtrl 控件提交的文档。
FileSaver 类用来接收并保存 PageOfficeCtrl 或 FileMakerCtrl 控件提交的文档。 您必须在 PageOfficeCtrl.SaveFilePage 或 FileMakerCtrl.SaveFilePage 指定的页面里创建和使用 FileSaver 对象。
构造方法摘要 | |
---|---|
FileSaver(HttpServletRequest request,
HttpServletResponse response)
初始化 FileSaver 类的新实例。 |
方法摘要 | |
---|---|
void |
close()
关闭 FileSaver 对象并返回保存成功的消息。 |
java.lang.String |
getDocumentText()
获取文档的纯文本内容。 |
byte[] |
getFileBytes()
返回控件提交的文档二进制流字节数组。 |
java.lang.String |
getFileExtName()
获取文档的文件扩展名。 |
java.lang.String |
getFileName()
获取控件提交的文档的文件名。 |
int |
getFileSize()
文件大小,以字节为单位。 |
java.io.FileInputStream |
getFileStream()
返回控件提交的文档二进制流。 |
java.lang.String |
getFormField(java.lang.String name)
获取 PageOfficeCtrl 控件所在页面指定的Form控件的值。 |
java.lang.String |
getLocalFileExtName()
获取 PageOfficeCtrl 控件提交的客户端本地文档的文件扩展名。 |
java.lang.String |
getLocalFileName()
获取 PageOfficeCtrl 控件提交的客户端本地文档的文件名。 |
void |
saveToFile(java.lang.String saveAsFileName)
保存当前文档到服务器文件夹。 |
void |
setCustomSaveResult(java.lang.String value)
设置开发者自定义保存结果。 |
void |
showPage(int width,
int height)
在浏览器里弹出对话框显示HTML格式的自定义保存结果。 |
从类 java.lang.Object 继承的方法 |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
public FileSaver(HttpServletRequest request, HttpServletResponse response) throws java.lang.Exception, java.io.IOException
java.lang.Exception
java.io.IOException
方法详细信息 |
---|
public java.lang.String getFileName()
此文件名包含文件扩展名,但不包含文件夹路径。 如果打开文档时采用的是动态页面输出的文档二进制流,这里的文件名是动态输出时设定的附件文件名,例如:response.addHeader("Content-Disposition", "attachment; filename=down.doc");中的down.doc。
public java.lang.String getFileExtName()
public java.lang.String getLocalFileName()
此文件名包含文件扩展名,但不包含文件夹路径。当利用PageOfficeCtrl控件浏览上传用户本地Office文档时,此属性可以获取上传到服务器的本地文档的文件名。
public java.lang.String getLocalFileExtName()
public int getFileSize()
public void setCustomSaveResult(java.lang.String value)
下面的示例展示如何使用 CustomSaveResult 属性。
FileSaver fs = new FileSaver(request, response); fs.saveToFile(request.getSession().getServletContext().getRealPath("doc/") + "/" + fs.getFileName()); fs.setCustomSaveResult("我的返回值"); fs.close();
然后在控件所在的 JSP 页面里定义的 JavaScript 保存函数(自定义保存按钮触发)里获取自定义保存结果。
<script language="javascript" type="text/javascript"> function SaveDocument() { document.getElementById("PageOfficeCtrl1").WebSave(); alert(document.getElementById("PageOfficeCtrl1").CustomSaveResult);//您可以判断CustomSaveResult编写自己的代码逻辑。 } </script>
public void close() throws java.io.IOException, java.lang.Exception
保存文档的代码成功执行后,您必须调用此方法关闭 FileSaver 对象。 通常 close 方法应该放在 SaveFilePage 指定页面服务器代码的最后调用。
java.io.IOException
java.lang.Exception
FileSaver.saveToFile()方法中完整的示例代码,学习如何保存文档。
public void saveToFile(java.lang.String saveAsFileName) throws ServletException, java.io.IOException, java.lang.Exception
保存当前文档到指定的服务器文件夹。如果您想把文档保存到数据库字段,请调用 getFileBytes() 或 getFileStream() 方法。 注意:Web Server可能有默认的可上传文件大小设置,如果上传的文件超出了设置,这里可能会出现保存错误。
下面的示例展示如何把控件提交的文档保存到指定的Web服务器文件夹。
在调试保存代码时,为了能够显示所有可能的异常信息,请不要在 SaveFilePage 指定的页面里使用 try...catch 语句。 如果保存时触发了异常导致保存失败,控件会显示详细的错误调试信息对话框。
FileSaver fs = new FileSaver(request, response); String strFileName = fs.getFileName(); String strFileExtName = fs.getFileExtName(); int iFileSize = fs.getFileSize(); // 保存当前文档到服务器文件夹。 fs.saveToFile(request.getSession().getServletContext().getRealPath("doc/") + "/" + fs.getFileName()); // 文档保存最后需调用 close 方法。 fs.close();
saveAsFileName
- 文档要保存到的目标位置,必须指定绝对路径及文件名。如果要保存到网站内的文件夹里,一般用 getRealPath() 映射绝对路径。
ServletException
java.io.IOException
java.lang.Exception
public void showPage(int width, int height) throws java.io.IOException
如果您需要弹出HTML格式的自定义保存结果对话框,您需要调用此方法。 对话框里显示的内容是 SaveFilePage 返回的页面。默认情况下,SaveFilePage 页面什么也不显示。您需要在 SaveFilePage 页面里设计友好的提示信息。
下面的示例展示如何使用 showPage 方法在浏览器里显示自定义保存错误对话框。
FileSaver fs = new FileSaver(request, response); if((fs.getFileExtName().equals("doc"))||(fs.getFileExtName().equals("docx"))){ // 只保存Word格式的文档。 fs.saveToFile(request.getSession().getServletContext().getRealPath("doc/") + "/" + fs.getFileName()); } else{ out.println("保存失败!当前文档不是Word文档。"); // 简单输出错误信息,您可以设计友好的提示信息。 fs.showPage(380, 200); // 如果当前文档不是Word文档,PageOfficeCtrl 控件就弹出对话框显示自定义错误页面。 } fs.close();
width
- 对话框的宽度,以像素为单位。height
- 对话框的高度,以像素为单位。
java.io.IOException
public byte[] getFileBytes() throws ServletException, java.io.IOException, java.lang.Exception
如果您需要把文件保存到数据库字段里,您可以调用本属性。如果您需要把文件保存到服务器文件夹里,您只需调用 FileSaver.saveToFile() 方法即可。
ServletException
java.io.IOException
java.lang.Exception
public java.io.FileInputStream getFileStream() throws ServletException, java.io.IOException, java.lang.Exception
ServletException
java.io.IOException
java.lang.Exception
public java.lang.String getDocumentText() throws java.io.IOException, java.lang.Exception
注意:此属性目前仅适用于Word。
下面的示例展示如何使用 DocumentText 属性获取当前文档的文本内容。
FileSaver fs = new FileSaver(request, response); String strDocumentText = fs.getDocumentText(); // 您可以把此文本字符串保存到数据库字段。 fs.saveToFile(request.getSession().getServletContext().getRealPath("doc/") + "/" + fs.getFileName()); fs.close();
java.io.IOException
java.lang.Exception
public java.lang.String getFormField(java.lang.String name) throws java.io.IOException, java.lang.Exception
当 PageOfficeCtrl 提交文档时,您可以调用此方法获取PageOfficeCtrl 控件所在页面里Form控件的值。
注意:为了获取Form控件的值,Form控件必须包含 name 属性。
这里的Form控件包括输入框、下拉框、单选框、复选框、TextArea、隐藏域等类型的控件。
下面的示例展示如何使用 getFormField 获取 PageOfficeCtrl 控件所在页面Form域里的指定Form控件的值。
FileSaver fs = new FileSaver(request, response); String strSubject = fs.getFormField("EditSubject"); fs.saveToFile(request.getSession().getServletContext().getRealPath("doc/") + "/" + fs.getFileName()); fs.close();
name
- Form控件的名称(name)。
java.io.IOException
java.lang.Exception
|
||||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |