当我正在处理文件上传任务时,我使用jQuery和php将文件上传到服务器以减少http请求的数量。在管理控制面板上,除文件上传外,一切正常。文件上传在localhost中正常工作,但是当我在实时服务器环境中处理此文件时,文件没有上传。我已将文件权限更改为0777.
在您将权限设置为777或上传游戏后,权限会自动更改为755。
实际上这个过程是: - 我将文件,即image和.swf文件存储在一个目录中 - 使用数据库表id创建目录 - 游戏文件和游戏图像没有上传到相应的目录
例如,使用名为342的目录名创建游戏ID 342,但不会在该目录中上传image和swf文件。对于每个游戏,使用游戏ID创建相应的目录。
我的代码: 文件名:uploadify.php
if (!empty($_FILES)) {
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
$targetFile = str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];
$fileTypes = str_replace('*.','',$_REQUEST['fileext']);
$fileTypes = str_replace(';','|',$fileTypes);
$typesArray = split('\|',$fileTypes);
$fileParts = pathinfo($_FILES['Filedata']['name']);
mkdir(str_replace('//','/',$targetPath), 0755, true);
move_uploaded_file($tempFile,$targetFile);
chmod($targetFile,0777);
echo "1";
}
jQuery文件:js.js
$('#fileinput').uploadify({
'uploader' : 'uploader/uploadify.swf',
'script' : 'uploader/uploadify.php',
'cancelImg' : 'uploader/cancel.png',
'auto' : true,
'folder' : "../../../games/"+$("#newgameid").val()+"/",
'onComplete' : function(event,queueID,fileObj){
$("#flashfileupload").html("file<strong>: "+ fileObj.name + " ("+ Math.round(fileObj.size/1000) + " kb)</strong> has been uploaded successfully!");
$("#size").val(Math.round(fileObj.size/1000));
$("#filename").val(fileObj.name);
$("#submitgame").removeAttr("disabled");
},
'onOpen' : function(event,queueID,fileObj){
if(fileObj.name.indexOf(".swf")==-1){
alert('Error Input - Flash game must SWF File!')
$('#fileinput').uploadifyClearQueue();
}
}
});
$('#thumnail').uploadify({
'uploader' : 'uploader/uploadify.swf',
'script' : 'uploader/uploadify.php',
'cancelImg' : 'uploader/cancel.png',
'auto' : true,
'folder' : "../../../games/"+$("#newgameid").val()+"/",
'onComplete' : function(event,queueID,fileObj){
$("#thumnailfileupload").html("file<strong>: "+ fileObj.name + " ("+ Math.round(fileObj.size/1000) + " kb)</strong> has been uploaded successfully!");
$("#thumbnail").val(fileObj.name);
}
});
请在这方面帮助我。感谢您抽出时间阅读此问题。任何建议都被接受。
此致 phphunger。
答案 0 :(得分:0)
您的mkdir()函数调用正在将权限设置为0755:
mkdir(str_replace('//','/',$targetPath), 0755, true);
尝试将其设置为777:
mkdir(str_replace('//','/',$targetPath), 0777, true);