我在jQuery File Upload中使用Liferay Portal作为PHP portlet,当我上传文件时出现此错误:
Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:8080/server/php/
我的项目树:
Upload-portlet
|
|___docroot
|
|__ cors
|__ css
|__ img
|__ js
|__ main.js (that contains url to server/php/)
|__ META-INF
|__ server
| |__ php
|
|__ WEB-INF
|
| view.php
我测试了Xampp中的 jQuery文件上传,它运行正常。我只将文件从Xampp复制到我的portlet,我部署它而没有收到任何错误。然后,当我上传文件时,我会在404
http://localhost:8080/server/php/
我尝试将url
更改为绝对路径:
$('#fileupload').fileupload({
url: 'http://localhost:8080/Upload-portlet/server/php/'
});
和相对路径:
$('#fileupload').fileupload({
url: '../server/php/'
});
但我仍然获得HTTP状态404。
感谢Martin Gamulin我解决了问题:我将我的网址更改为url: '/Upload-portlet/server/php/index.php'
,404问题不再发生。
但即使我解决了这个问题,也没有上传文件(我没有收到任何错误)。我在 Chrome JavaScript控制台中看到,当我上传文件时,调用返回200状态(OK)。
但是当我转到保存图像的文件夹F:\LIFERAY\tomcat-7.0.42\webapps\Upload-portlet\server\php\files
时,我发现它是空的。在预览中(见下面的截图)我得到PHP代码而不是缩略图。
现在问题是Liferay / Tomcat 没有解释尚未在portlet.xml
中声明的PHP 文件。解释 view.php 可能是因为它已在xml中声明。
<portlet-class>com.liferay.util.bridges.php.PHPPortlet</portlet-class>
<init-param>
<name>view-uri</name>
<value>/view.php</value>
</init-param>
我试图将所有的PHP代码放在 view.php 中,但它仍然无法正常工作。我验证PHP使用<?php phpinfo(); ?>
在 view.php 上工作,我得到了关于PHP的所有信息。这里的输出:
的栎
PHP Version => 5.2.0
System => Windows 7 6.1 amd64
Build Date => 20070628T2777
Configure Command => n/a
Server API => CGI
Virtual Directory Support => disabled
Configuration File (php.ini) Path => WEB-INF/php.ini
PHP API => 20031224
PHP Extension => 20041030
Debug Build => no
Thread Safety => enabled
Registered PHP Streams => php, file, http, https
PHP变量
Variable Value
_REQUEST["COOKIE_SUPPORT"] true
_REQUEST["COMPANY_ID"] 10204
_REQUEST["ID"] 6d49557674326c5142786c793578787233502b346b513d3d
_REQUEST["USER_UUID"] 40LHv8GLWffkS2XSYCqE61YcYleKtJSSpCdYnMZF3J0=
_REQUEST["GUEST_LANGUAGE_ID"] en_US
_REQUEST["LFR_SESSION_STATE_10248"] expired
_REQUEST["JSESSIONID"] 24CB07F376E4A7BCE991812360AFF4C1
_GET["portlet_namespace"] _Upload_WAR_Uploadportlet_
_GET["portlet_name"] Upload
etc..
我现在正在尝试将get_full_url()
(在PHP 类UploadHandler 中)更改为另一个URL,可能与Liferay网址混淆。
谢谢你的帮助,抱歉我的英文不好!