Php Can';t将文件上载到服务器文件夹
我正在尝试从html表单上传一个文件,以便该文件进入特定文件夹,并将路径上传到数据库。 数据库部分工作正常,但文件未转到我的目标文件夹。 我将文件夹权限设置为777,在php.ini文件中,file_uploads=onPhp Can';t将文件上载到服务器文件夹,php,file-upload,Php,File Upload,我正在尝试从html表单上传一个文件,以便该文件进入特定文件夹,并将路径上传到数据库。 数据库部分工作正常,但文件未转到我的目标文件夹。 我将文件夹权限设置为777,在php.ini文件中,file_uploads=on <?php require 'config.php'; $connection = new mysqli($servername, $username, $password, $db); foreach ($_FILES['upload']['name'] as $
<?php
require 'config.php';
$connection = new mysqli($servername, $username, $password, $db);
foreach ($_FILES['upload']['name'] as $key => $name) {
if( move_uploaded_file($_FILES['upload']['name'][$key], '/upload_test/' .
$name)){
echo "Uploaded";
} else {
echo "Debug ", print_r($_FILES);
};
$path = '/upload_test/' . $name;
mysqli_query($connection, "insert into docs (path) values ('$path')");
}
?>
<script src="addInput.js" type="text/javascript"></script>
<form method="POST" action="upload.php" enctype="multipart/form-data">
<div id="dynamicInput">
<input type="file" name="upload[]" multiple><input type="button"
value="+" onClick="addInput('dynamicInput');">
</div>
<input type="submit" value="Upload">
</form>
您必须将临时文件移动到新的目标!在您的情况下,您试图将原始文件名移动到目标文件夹 这应该可以
move_uploaded_file($_FILES['upload']['tmp_name'][$key], '/upload_test/' . $name);
您必须将临时文件移动到新的目标!在您的情况下,您试图将原始文件名移动到目标文件夹 这应该可以
move_uploaded_file($_FILES['upload']['tmp_name'][$key], '/upload_test/' . $name);
根据您的评论,您似乎试图上载到错误的目录:
if (move_uploaded_file($_FILES['upload']['tmp_name'][$key], '/upload_test/' . $name)) {
请注意路径'/upload\u test/$名称
位于文件系统的根目录上,因为它以斜杠开始
如果要将文件移动到与当前运行脚本的目录相对的目录,则需要:
if (move_uploaded_file($_FILES['upload']['tmp_name'][$key], 'upload_test/' . $name)) {
^ relative to the current path
由于相对路径容易导致混淆,您还可以设置一个变量来定义相对于文件系统根的网站根,或者使用php提供的值,$\u SERVER['DOCUMENT\u root']
例如:
define('WEBROOT', '/var/www/html');
...
if (move_uploaded_file($_FILES['upload']['tmp_name'][$key],
WEBROOT . '/multiple_file_upload/upload_test/' . $name)) {
或:
根据您的评论,您似乎试图上载到错误的目录:
if (move_uploaded_file($_FILES['upload']['tmp_name'][$key], '/upload_test/' . $name)) {
请注意路径'/upload\u test/$名称
位于文件系统的根目录上,因为它以斜杠开始
如果要将文件移动到与当前运行脚本的目录相对的目录,则需要:
if (move_uploaded_file($_FILES['upload']['tmp_name'][$key], 'upload_test/' . $name)) {
^ relative to the current path
由于相对路径容易导致混淆,您还可以设置一个变量来定义相对于文件系统根的网站根,或者使用php提供的值,$\u SERVER['DOCUMENT\u root']
例如:
define('WEBROOT', '/var/www/html');
...
if (move_uploaded_file($_FILES['upload']['tmp_name'][$key],
WEBROOT . '/multiple_file_upload/upload_test/' . $name)) {
或:
上载目录是否真的位于文件系统的根目录上?文件系统的根目录是什么意思?所有文件都在一个文件夹/多个文件上传中。这是剧本。上载文件夹位于该文件夹内,因此:/multiple\u file\u upload/upload\u test上载目录是否确实位于文件系统的根目录上?文件系统的根目录是什么意思?所有文件都在一个文件夹/多个文件上传中。这是剧本。上载文件夹位于该文件夹内,因此:/multiple\u file\u upload/upload\u test不幸的是,这不起作用。它也有同样的行为。不幸的是,这不起作用。它也有同样的行为,这很有效!这是你的代码和@Klaus所说的结合!谢谢大家@Serrano是的,我错过了关于
tmp\u名称的部分,我将在中编辑它以完成。@jereon如果我不想直接上传到/upload\u测试,而是想根据数据库中的id创建一个子文件夹呢?回答很好。不要太小也不要太大;恰到好处;-)@杰伦称之为“团队成功”(努力);-)成功了!这是你的代码和@Klaus所说的结合!谢谢大家@Serrano是的,我错过了关于tmp\u名称的部分,我将在中编辑它以完成。@jereon如果我不想直接上传到/upload\u测试,而是想根据数据库中的id创建一个子文件夹呢?回答很好。不要太小也不要太大;恰到好处;-)@杰伦称之为“团队成功”(努力);-)