Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过php上载文件时出错_Php - Fatal编程技术网

通过php上载文件时出错

通过php上载文件时出错,php,Php,我正在使用此脚本上载文件。我没有对文件类型执行任何检查,因为这是我第一次尝试。我使用的是Ubuntu,在php.ini文件中,文件上传设置为“on”。但我仍然无法上传文件 <?php if(isset($_POST['send'])) { $uploaddir = "/home/harbhag/Desktop/"; $uploadfile = $uploaddir . basename($_FILES['userfile']['name']); echo $uploadfile; if

我正在使用此脚本上载文件。我没有对文件类型执行任何检查,因为这是我第一次尝试。我使用的是Ubuntu,在php.ini文件中,文件上传设置为“on”。但我仍然无法上传文件

<?php
if(isset($_POST['send']))
{
$uploaddir = "/home/harbhag/Desktop/";
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
echo $uploadfile;

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "File is valid, and was successfully uploaded.\n";
} else {
    echo "Possible file upload attack!\n";
}

}
?>

<html>
<form enctype="multipart/form-data" action="upload.php" method="POST">
    <!-- MAX_FILE_SIZE must precede the file input field -->
    <input type="hidden" name="MAX_FILE_SIZE" value="30000000" />
    <!-- Name of input element determines name in $_FILES array -->
    Send this file: <input name="userfile" type="file" />
    <input type="hidden" name="send" value="send" />
    <input type="submit" value="Send File" />
</form>
</html>
您应该使用$uploaddire和$uploadfile这两个变量为文件创建有效路径

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir.$uploadfile)) {
并注意要点

目标目录应具有写入权限 要上传的文件大小必须满足php的upload_max_filesize默认值为2MB限制 您应该使用$uploaddire和$uploadfile这两个变量为文件创建有效路径

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir.$uploadfile)) {
并注意要点

目标目录应具有写入权限 要上传的文件大小必须满足php的upload_max_filesize默认值为2MB限制
使用move_上传的文件时要格外小心。它不会在partitios之间移动文件,主机公司可能会将其上载临时目录放在php文件的其他位置

这是一个更安全的选择:

$tempname = $_FILES['userfile']['tmp_name'];
if (is_uploaded_file($tempname)) {
    copy($tempname, $uploadfile);
}

使用move_上传的文件时要格外小心。它不会在partitios之间移动文件,主机公司可能会将其上载临时目录放在php文件的其他位置

这是一个更安全的选择:

$tempname = $_FILES['userfile']['tmp_name'];
if (is_uploaded_file($tempname)) {
    copy($tempname, $uploadfile);
}

$uploaddir目录的写入权限是什么?@helle,由于$uploaddir是我的主目录,所以我对它有写入权限@alexn,我收到了可能的文件上传攻击,这是写在代码里的。但是我没有收到任何指定错误可能原因的消息。$uploaddir目录的写入权限是什么?@helle,我有$uploaddir的写入权限,因为它是我的主目录@alexn,我收到了可能的文件上传攻击,这是写在代码里的。但是我没有收到任何消息说明可能的错误原因。这没有帮助。是的upload_max_filesize已经设置为50MBOk,我已经解决了。我将目录更改为其他目录,并授予它完整的写入权限,它成功了。我不需要使用$uploaddirIt也没用。是的upload_max_filesize已经设置为50MBOk,我已经解决了。我将目录更改为其他目录,并授予它完整的写入权限,它成功了。我不需要使用$uploaddir