2011-03-04 18 views
2

我制作了一个基于Flex + PHP的应用程序,其中有一项功能可以将图片上传到服务器。如果在Windows上运行,应用程序会上传照片。但在Ubuntu上,文件根本无法上传。它可以是权限相关的问题?上传文件功能在Ubuntu中不起作用

这里是在上传文件维护日志:

Uploading 5408_1243356204478_1246540615_30751024_3730562_n.jpg... 
File opened 
File upload in progress (349 of 31340) 
File upload in progress (349 of 31340) 
File upload in progress (31340 of 31340) 
File upload in progress (31340 of 31340) 
File upload in progress (31340 of 31340) 
File upload in progress (31340 of 31340) 
File upload in progress (31340 of 31340) 
File upload in progress (31340 of 31340) 
File upload in progress (31340 of 31340) 
File upload in progress (31340 of 31340) 
HTTP error occured - 
HTTP IO error occured - 

而且,我想这个应用程序在OpenSuse 机器上,并且上传只是工作 罚款那里。

我的应用程序的路径:在/ var/WWW/bin中释放的在/ var/WWW/bin中释放 权限/ *

所有者,组= baltusaj,WWW的数据 文件,目录= 777777

我在/ etc/group中

的HTTP I/O错误仍然存​​在,在我的神经跳舞还增加baltusaj到www数据组。 :(

+1

您可以检查您的'phpinfo()'来查看它试图放置临时文件的位置,并确保其中的权限正确。 – Shad 2011-03-04 06:11:45

+0

检查出来。 tmp文件夹未设置。我将其设置为/ tmp,其权限设置正确,但问题仍然存在。发生相同的HTTP IO错误,如果此应用程序在OpenSuSE上运行,则不会发生此错误。 – baltoro 2011-03-04 06:54:02

+0

您是否在更改设置后重新启动apache? PHP错误日志说什么(将error_reporting设置为E_ALL)?该文件是否在/ tmp中结束? – wimvds 2011-03-04 12:18:23

回答

0

谢谢大家的努力帮助。 :)

我换成下面一行

public var uploadFile:String = "upload.php"; 

public var uploadFile:String = "http://localhost/bin-release/upload.php"; 

这使得在Ubuntu的应用工作。虽然只是'upload.php',但它正在开发OpenSuSE。

1

我会建议从客户端运行Wireshark来捕获网络流量的文件attepted上传。这应该允许什么样的服务器实际上是两个设备之间做一个有效的视图。

http://www.wireshark.org/

1

我在Mac的Safari浏览器面临的Flex + Java的一个类似的问题,我固定它使用urlRequestVariable和改变从services.Hope的响应,可以帮助你

解决方案:*。1.创建一个urlRequest变量并设置文件上传URL。 *

例如,var request:URLRequest = new URLRequest(); request.url = HTTP://本地主机:8080/projectContext /上传/“;

2.使用的URLVariables设置请求数据 [现在REST接口和userObject是queryparam]

var sendVars:URLVariables=new URLVariables(); 
      var user:Object = new Object; 
      user.firstName ="XXX"; 
      user.lastName="YYY"; 
      sendVars.userObject = user; request.data=sendVars; 

      var _refUploadFile:FileReference=new FileReference(); 
      _refUploadFile=obj.file; 
      _refUploadFile.addEventListener(ProgressEvent.PROGRESS, onUploadProgress); 
      _refUploadFile.addEventListener(IOErrorEvent.IO_ERROR, onUploadIoError); 
      _refUploadFile.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onUploadSecurityError); 
      _refUploadFile.upload(request, "file", true); 
      _refUploadFile.addEventListener(Event.COMPLETE, onUploadComplete); 

从我试图返回响应对象和onUploadComplete方法从来没有所谓的服务,以为文件被上传successfully.So当您返回从服务的String onUploadComplete方法将被调用。