我有什么动态变化:我使用uploadify上传企业内部网应用程序,我写的文件文件上传插件位于Web根目录忽略到目标文件夹
。
我需要将文件上传到属于一个用户(动态创建的目录)的目录。
我显然是不正确的解决方案:)
在我的任何用户登录后他创建一个文件夹(标题为USER_ID)。
现在uploadify.php看起来像这样:
session_name("test_tool_cookie");
session_start();
$targetFolder = '/test_tool/app/webroot/uploadify/' . $_SESSION['Auth']['User']['user_id']; //Relative to the root
//the 3 lines above are my only change to the script
//$targetFolder = '/test_tool/app/webroot/uploadify/tmpFile'; //this was here before my changes
if (!empty($_FILES)) {
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $targetFolder;
$targetFile = rtrim($targetPath,'/') . '/' . $_FILES['Filedata']['name'];
// Validate the file type
$fileTypes = array('html' , 'docx', 'pdf', 'xls', 'xlsx', 'txt'); // File extensions
$fileParts = pathinfo($_FILES['Filedata']['name']);
if (in_array($fileParts['extension'],$fileTypes)) {
move_uploaded_file($tempFile,$targetFile);
echo '1';
} else {
echo 'Invalid file type.';
}
}
的问题
以上脚本将无法上传文件到文件夹(检查和 不会上传该文件在其他地方)。
如果我改变$的TargetFile静态值,它工作正常。
- 会话值是正确的(但忽略)
还有什么可以赚取回答问题
,如果你认为一个好的multiupload插件(与我会将您的问题作为一个答案简单的描述),它很容易与Cake Cake集成,并且可以自定义,因此数据库中的每个对象都可以拥有自己的文件夹。
请想想你的答案,对于这个问题的任何解决方案将有很大的帮助。
是否'$ _SESSION [ '验证'] [ '用户'] [ 'USER_ID']'抱一个字符串值如果你的用户登录?执行'$ _SERVER ['DOCUMENT_ROOT']。 $ targetFolder'存在并且是可写的?如果您创建了该文件夹,那么您的Web用户的父文件夹是否可写? –
使用is_writable方法检查它,返回1.检查会话,它包含一个数字(php是类型不敏感的,正确的)? http://php.net/manual/en/function.is-writable.php –
用is_string检查SESSION,并返回1 –