我有当前的PHP代码,可以在表单上附加文件。这些文件必须转到某个目录。我知道在Wordpress中附加时,我需要使用不同的语法。然而,我已经读了好几天的书,从字面上看我是如何做到这一点的。同样,我的代码在独立的PHP页面上工作,但在Wordpress中不工作。我也不担心安全问题,因为我的页面位于防火墙后面的intranet站点上,否则无法访问。我在WP uploads文件夹中看到了一些上传到自定义目录的教程和代码,但我需要上传到web服务器根目录中。这是我目前在独立PHP页面上的代码。
$folderPath = "/jobtracking/files/standard/{$projID}";
mkdir($folderPath);
$filename = basename($_FILES["Attach_Files"]["name"]);
$filetype = $_FILES["Attach_Files"]["type"];
$datei = "/jobtracking/files/standard/{$projID}/{$filename}";
$target_path = $folderPath . "/" . $filename;
if(move_uploaded_file($_FILES["Attach_Files"]["tmp_name"], $target_path)) {
mysql_query("INSERT INTO files(files.name, files.project, files.added, files.datei, files.type, files.folder) VALUES(\'{$filename}\', \'{$projID}\', UNIX_TIMESTAMP(now()), \'{$datei}\', \'{$filetype}\', 0)");
}
chmod("{$target_path}", 0777);
我在wp\\u handle\\u上传上看到了codex,但不确定这是否适用于我的需要。我觉得这正是我需要使用的,但很难找到适合我所要做的事情。我根本不需要表格附件进入Wordpress。
我看到了这个article 这似乎很有希望,但仍在上传,将文件放在WP目录内,而不是外部。
还尝试使用this article 作为参考。
我的问题是,如何在自定义Wordpress页面模板中有一个单独的文件附件表单字段,以遵循我当前的PHP并上传到WP之外的自定义目录?
提前感谢您的建议!
**更新12.13.13
我尝试使用site\\u url建立正确的文件夹路径,但仍然没有成功。这是我迄今为止尝试的代码。
$folderPath = site_url(\'/jobtracking/files/standard/{$projID}\');
mkdir($folderPath);
$filename = basename($_FILES["Attach_Files"]["name"]);
$filetype = $_FILES["Attach_Files"]["type"];
$datei = site_url(\'/jobtracking/files/standard/{$projID}/{$filename}\');
$target_path = $folderPath . "/" . $filename;
if(move_uploaded_file($_FILES["Attach_Files"]["tmp_name"], $target_path)) {
mysql_query("INSERT INTO files(files.name, files.project, files.added, files.datei, files.type, files.folder) VALUES(\'{$filename}\', \'{$projID}\', UNIX_TIMESTAMP(now()), \'{$datei}\', \'{$filetype}\', 0)");
}
chmod("{$target_path}", 0777);
**更新日期:2014年1月31日
似乎我甚至没有在表单提交时创建目录。文件夹现在都设置为0777,只是为了确保我拥有测试所需的所有读/写权限。我还阅读了关于使用wp\\u mkdir\\u p()的内容;而不是mkdir();使用Wordpress时。我不知道是否可以对wp\\u mkdir\\u p();)中的字符串使用变量;。一旦我可以创建目录并将文件移入,我感觉我已经完成了一半。
**更新:2014年3月2日
$folderPath = ABSPATH . \'/jobtracking/files/standard/{$projID}\';
wp_mkdir_p($folderPath, 0777, true);
$filename = basename($_FILES[\'Attach_Files\'][\'name\']);
$filetype = $_FILES[\'Attach_Files\'][\'type\'];
$datei = ABSPATH . \'files/standard/{$projID}/{$filename}\';
$target_path = $folderPath . "/" . $filename;
if(move_uploaded_file($_FILES[\'Attach_Files\'][\'tmp_name\'], $target_path)) {
mysql_query("INSERT INTO files (files.name, files.project, files.user, files.added, files.datei, files.type, files.folder) VALUES(\'{$filename}\', \'{$projID}\', 0, UNIX_TIMESTAMP(now()), \'{$datei}\', \'{$filetype}\', 0)");
}
chmod("{$target_path}", 0777);
**更新02.04.14--这将创建目录并将文件放入其中。但是,信息仍然没有进入数据库。也许我没有使用if();正确地
$folderPath = "/jobtracking/files/standard/{$projID}";
mkdir(ABSPATH.$folderPath, 0777, true);
$filename = basename($_FILES[\'Attach_Files\'][\'name\']);
$filetype = $_FILES[\'Attach_Files\'][\'type\'];
$datei = \'files/standard/{$projID}/{$filename}\';
$target_path = ABSPATH.$folderPath . "/" . $filename;
if(move_uploaded_file($_FILES[\'Attach_Files\'][\'tmp_name\'], $target_path)) {
mysql_query("INSERT INTO files (files.name, files.project, files.user, files.added, files.datei, files.type, files.folder) VALUES(\'{$filename}\', \'{$projID}\', 0, UNIX_TIMESTAMP(now()), \'{$datei}\', \'{$filetype}\', 0)");
}
chmod("{$target_path}", 0777);
**更新02.04.14-有效!!!这是我的代码:
$folderPath = "/jobtracking/files/standard/{$projID}";
mkdir(ABSPATH.$folderPath, 0777, true);
$filename = basename($_FILES[\'Attach_Files\'][\'name\']);
$filetype = $_FILES[\'Attach_Files\'][\'type\'];
$datei = "files/standard/{$projID}/{$filename}";
$target_path = ABSPATH.$folderPath . "/" . $filename;
if(move_uploaded_file($_FILES[\'Attach_Files\'][\'tmp_name\'], $target_path)) {
mysql_query("INSERT INTO files (files.name, files.project, files.user, files.added, files.datei, files.type, files.folder, files.visible) VALUES(\'{$filename}\', \'{$projID}\', 5, UNIX_TIMESTAMP(now()), \'{$datei}\', \'{$filetype}\', 0, \' \')");
}
chmod("{$target_path}", 0777);