php 目录名称,php:文件目录名的名称

作者探讨了在PHP中使用文件上传表单时遇到的问题,重点在于理解`$_FILES`数组结构并修复move_uploaded_file的使用。通过展示如何正确解析`basename`和`name`属性来定位上传文件名。
摘要由CSDN通过智能技术生成

我正在使用PHP上传文件的表单.这些是我的投入:

$file_name = filter_input(INPUT_POST, 'file_name');

$file = filter_input(INPUT_POST, 'file');

$file_date = filter_input(INPUT_POST, 'premiere_date');

$file_director = filter_input(INPUT_POST, 'director_name');

这就是我不知道我做错了什么:

if ((filter_input(INPUT_POST, 'submit'))) { //if submit button is clicked

$target_dir = "uploads/";

$target_file = $target_dir . basename($_FILES["file"]["file_name"]);

move_uploaded_file($_FILES["file"]["tmp_name"], $target_file);

echo $target_file;

}

这是HTML

Name of the file:

Select your file:


Date of premiere:

Name of the director:

Upload file

//Table with records

$sql = "SELECT myFilms.id, file_name, file, premiere_date, director_name FROM myFilms JOIN myFilms_directors ON myFilms.director_id = myFilms_directors.id";

/*for mysqlia

* $result = $conn->query($sql);

*/

/*for mysql (old)*/

$result = mysql_query($sql);

if ($result) {

echo "

FILE IDFILE NAMEFILEPREMIERE DATEDIRECTOR NAME

/* in mysqli

* while ($row = $result->fetch_assoc()) */

/*for mysql (old)*/

while ($row = mysql_fetch_array($result)) {

echo '

' . $row['id'] . '' . $row['file_name'] . ' view file' . $row['premiere_date'] . '' . $row['director_name'] . '';

}

echo "

";

} else {

echo "there is not data on the table";

}

/*for mysqli

$conn->close();

*/

/*for mysql (old)*/

mysql_close($dbhandle);

?>

所以,当我回显$target_file时,我希望它在这种情况下是上传/ nameOfTheFile.pdf的路径,但它只显示为uploads /所以$target_dir,我使用的是basename函数吗?我已经检查了w3schools,它似乎对我来说,但绝对一定是错的…

感谢你们!!

解决方法:

使用var_dump($_ FILES)可以查看整个PHP $_FILES关联数组.如您所见:

array(1) {

["file"]=> array(5) {

["name"]=> string(14) "plugin wp.docx"

["type"]=> string(71) "application/vnd.openxmlformats-officedocument.wordprocessingml.document"

["tmp_name"]=> string(18) "/var/tmp/phpcoayaU"

["error"]=> int(0)

["size"]=> int(262453)

}

}

$_FILES包含一个名为’file’的关联数组,它有5个索引:name,type,tmp_name,error和size.

您分配的是:

$target_file = $target_dir . basename($_FILES["file"]["file_name"]);

其中,参考上述对象是不正确的,因为[“file_name”]不是文件的一部分.解决方案应该是明显的调试信息,只需将[“file_name”]更改为[“name”]:

$target_file = $target_dir . basename($_FILES["file"]["name"]);

有关PHP var_dump()here的一些信息,因为您似乎没有意识到这个函数.

标签:php,file,submit

来源: https://codeday.me/bug/20190528/1169460.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值