我的web应用程序在tomcat6上运行,我正在使用Wicket来开发它。 我想要做的是将图像文件上传到服务器,并在其上传后立即将其显示在网页上。我通过AJAX上传文件,如here所述。该文件被上传后存储在/home/mysuser/
路径的磁盘上。当文件被上传,我执行JavaScript,以便加载文件与HTML对象:Wicket和AJAX:将文件上传到服务器并在页面上显示
检票代码:
protected void onSubmit(AjaxRequestTarget target, Form<?> form)
{
target.appendJavaScript("loadOriginalImage(\""+
(UPLOAD_FOLDER + TMP_FILE_NAME1)+"\")");
}
JavaScript代码:
function loadOriginalImage(image_path){
var curImg = new Image();
curImg.src = "file://"+image_path;
curImg.onload = function(){
imgHolder.appendChild(this);
}
}
的文件上传的很好,但是当执行JavaScript时,出现下一个错误:
Not allowed to load local resource
然后我三编辑从JavaScript代码中删除"file://"
,因为我发现该文件是从客户端的本地文件夹读取的,而不是从服务器读取的。但是,这一次我有一个错误:
GET http://localhost:8080/home/myuser/originalImg.jpg 404 (Not Found)
所以我有两个问题:
我在JavaScript中如何指定上传文件的正确路径?
2.我的策略是正确的加载图像到网页后上传到服务器?
它创建的网址很好,但返回相同的404错误。我如何检查资源是否映射良好? – andriy 2013-04-29 10:17:04
您的资源类是否已被调用?放一个断点来检查这个。如果你分享更多的代码,它会更容易帮助你。 – 2013-04-29 10:33:05
是的,它被称为。我已经解决了这个问题。我不知道为什么在函数'getImageAsBytes()'中,你写的文章不可能用'.jpg'扩展名来写图像。当我将扩展名更改为'.jpeg'时,它起作用了!我拥有的另一个问题是浏览器缓存!现在我需要找到如何仅为此映像停用缓存。谢谢你的帮助! – andriy 2013-04-29 12:17:09