gpt4 book ai didi

java - 在 GWT 中将 File 和 HashMap 发送到服务器

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:45:28 25 4
gpt4 key购买 nike

我必须将文件及其属性发送到 GWT 服务器。

为了发送文件,我使用了表单面板。

 public class BrowseFile extends DialogBox {
// more code
// ..

private FormPanel getFormPanel() {
if (formPanel == null) {
formPanel = new FormPanel();
formPanel.setMethod(FormPanel.METHOD_POST);

formPanel.setEncoding(FormPanel.ENCODING_MULTIPART);
formPanel.setAction(GWT.getHostPageBaseURL() +"UploadFileServlet");

formPanel.addSubmitHandler(new FormPanel.SubmitHandler(){
public void onSubmit(SubmitEvent event) {
// TODO Auto-generated method stub
setFilename(fileUpload.getFilename());
}

});
}
return formPanel;
}
}

这个文件的所有属性都在Hashmap中 GUi to add Document

有 2 个对话框 Propertybox extends DialogBox

BrowseFile extends DialogBox

在 PropertyBox 的构造函数中有 BrowseFile

当 PropertyBox 构造函数时

                setSize("600px", "670px");
setHTML("Add Document");

setWidget(getVerticalPanel());
browseFile = new BrowseFile();

PropertyBox里面的自定义Property取决于选择的类(Class是tree Widget)

在服务器端

public class FileUpload extends HttpServlet implements Servlet{

private static final long serialVersionUID = 1L;
private static final Logger log = Logger.getLogger(FileUpload.class
.getName());
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {

doPost(request, response);

}

protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {

byte[] buffer = new byte[115200];//
String fileName = null;
String mimetype = null;
String majorVersion = null;
InputStream stream = null;

try {

ServletFileUpload upload = new ServletFileUpload();

FileItemIterator iterator = upload.getItemIterator(request);
while (iterator.hasNext()) {
FileItemStream item = iterator.next();
stream = item.openStream();

if (item.isFormField()) {
//
} else {

fileName = item.getName();
mimetype = item.getContentType();

//
}
}

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ByteArrayOutputStream output = new ByteArrayOutputStream();
int len;

while ((len = stream.read(buffer, 0, buffer.length)) != -1) {
output.write(buffer, 0, len);
}
ByteArrayInputStream input = new ByteArrayInputStream(output.toByteArray());
Session session =RootFolder.getSession();
ContentStream contentStream = session.getObjectFactory()
.createContentStream(fileName, output.size(), mimetype, input);


}

为了在外部存储库中创建文档,我需要 hasmap 中的文档属性

folder.createDocument(文档属性,contentStream, VersioningState.MAJOR);

Document 属性应该在 Document property Class 的 Button ADDonClick 事件上发送给此类

*****如何在 FileUpload 类中将此文档属性发送到服务器 *****

最佳答案

首先,我建议使用 GWTUploader 组件,它会大大简化生活。

http://code.google.com/p/gwtupload/

接下来,您需要将 HashMap (键/值)添加为表单字段,请参阅

http://code.google.com/p/gwtupload/issues/detail?id=8

并简单地检索服务器端组件上的表单字段,类似于您描述的方式:

            if (item.isFormField()) {
//
} else {

它可能看起来像:

            if (item.isFormField()) {
paramsMap.add(item.getName(), item.getValue())
} else {

关于java - 在 GWT 中将 File 和 HashMap 发送到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12071655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com