为什么ZK中没有运行上传命令?
Why not run the upload command in ZK?
在我的 zul 中我使用:
<cell colspan="2">
<button label="Upload image" upload="true" onUpload="@command('uploadImage', uploadEvent=event, window = editTranslation)"/>
</cell>
我在视图模型中使用了这个:
@Command
@NotifyChange({"leadImage", "uploadMessage"})
public void uploadImage(@BindingParam("uploadEvent") UploadEvent event, @BindingParam("window") Window win) {
Clients.showBusy(win, "Képfeldolgozás ...");
System.err.println("uploadimage");
Media media = event.getMedia();
if (media instanceof org.zkoss.image.Image) {
saveImageToDisk(media);
Clients.clearBusy(win);
} else {
Clients.clearBusy(win);
Messagebox.show("Ez nem egy kép: "+media, "Error", Messagebox.OK, Messagebox.ERROR);
}
}
但不是 运行 uploadImage 命令,如果我单击按钮并选择图像...它显示:例如 C:\fakepath\desert.png...可能有什么问题?我使用 spring 安全会导致这个吗?
在 spring 安全性 xml 中,我必须添加以下行:
<headers>
<frame-options policy="SAMEORIGIN"/>
</headers>
尝试将这些行添加到您的上传方法中:
String webAppPath = Executions.getCurrent().getDesktop().getWebApp().getRealPath("/") + "\";
String filePath = webAppPath + media.getName();
Files.copy(new File(filePath), media.getStreamData());
以上代码会将您的文件上传到您的 webApp 文件夹
在我的 zul 中我使用:
<cell colspan="2">
<button label="Upload image" upload="true" onUpload="@command('uploadImage', uploadEvent=event, window = editTranslation)"/>
</cell>
我在视图模型中使用了这个:
@Command
@NotifyChange({"leadImage", "uploadMessage"})
public void uploadImage(@BindingParam("uploadEvent") UploadEvent event, @BindingParam("window") Window win) {
Clients.showBusy(win, "Képfeldolgozás ...");
System.err.println("uploadimage");
Media media = event.getMedia();
if (media instanceof org.zkoss.image.Image) {
saveImageToDisk(media);
Clients.clearBusy(win);
} else {
Clients.clearBusy(win);
Messagebox.show("Ez nem egy kép: "+media, "Error", Messagebox.OK, Messagebox.ERROR);
}
}
但不是 运行 uploadImage 命令,如果我单击按钮并选择图像...它显示:例如 C:\fakepath\desert.png...可能有什么问题?我使用 spring 安全会导致这个吗?
在 spring 安全性 xml 中,我必须添加以下行:
<headers>
<frame-options policy="SAMEORIGIN"/>
</headers>
尝试将这些行添加到您的上传方法中:
String webAppPath = Executions.getCurrent().getDesktop().getWebApp().getRealPath("/") + "\";
String filePath = webAppPath + media.getName();
Files.copy(new File(filePath), media.getStreamData());
以上代码会将您的文件上传到您的 webApp 文件夹