Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.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_Html_File Upload_Image Uploading - Fatal编程技术网

Php 如何允许网站用户上传媒体文件?

Php 如何允许网站用户上传媒体文件?,php,html,file-upload,image-uploading,Php,Html,File Upload,Image Uploading,我目前正在学习一个基本媒体文件上传表单的教程。我曾尝试将其添加到我的网站,但当我尝试使用它上载图像时,我总是收到消息“上载文件时出错,请重试!” 我已将以下html文件放在我的服务器上: <DOCTYPE! html> <html> <head> </head> <body> <form enctype="multipart/form-data" action="uploader.php" method="POST">

我目前正在学习一个基本媒体文件上传表单的教程。我曾尝试将其添加到我的网站,但当我尝试使用它上载图像时,我总是收到消息“上载文件时出错,请重试!”

我已将以下html文件放在我的服务器上:

<DOCTYPE! html>
<html>


<head>
</head>


<body>
<form enctype="multipart/form-data" action="uploader.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="10000000" />
Choose a file to upload: <input name="uploadedfile" type="file" /><br />
<input type="submit" value="Upload File" />
</form>
</body>


</html>

选择要上载的文件:
然后,我创建了uploader.php文件,如下所示:

<?php

// Where the file is going to be placed 
$target_path = "../uploads/";

/* Add the original filename to our target path.  
Result is "uploads/filename.extension" */
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']); 



if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo "The file ".  basename( $_FILES['uploadedfile']['name']). 
    " has been uploaded";
} else{
    echo "There was an error uploading the file, please try again!";
}

?>

我已将这些文件存储在同一目录中。然后我创建了另一个名为uploads的目录,它是可写的

为什么这不起作用


编辑:我现在可以上传高达1MB的文件,但任何大于1MB的文件都无法上传。正如您在HTML脚本中所看到的,我已将最大文件大小设置为10MB,因此这应该可以工作。知道为什么没有吗?

它会起作用的。我签入了我的桌面

value=“100000”
更改为
value=“1000000”

MAX\u FILE\u SIZE隐藏字段(以字节为单位)必须位于 文件输入字段,其值为可接受的最大文件大小 通过PHP

有关详细信息,请单击

用户需求(如他在评论中所问)

在文件名后面加上
time()
。有很多方法可以做到。但是,这个你可以用

$target_path = $target_path .time() .basename( $_FILES['uploadedfile']['name']); 

它会起作用的。我签入了我的桌面

value=“100000”
更改为
value=“1000000”

MAX\u FILE\u SIZE隐藏字段(以字节为单位)必须位于 文件输入字段,其值为可接受的最大文件大小 通过PHP

有关详细信息,请单击

用户需求(如他在评论中所问)

在文件名后面加上
time()
。有很多方法可以做到。但是,这个你可以用

$target_path = $target_path .time() .basename( $_FILES['uploadedfile']['name']); 

uploads文件夹位于写入此代码的同一文件夹中或从该文件夹中取出?是的,它位于同一文件夹中。然后,给出
$target_path=“uploads/”
而不是此
$target_path=“../uploads/”
很遗憾,我已经尝试过了。从PHP中得到的错误是什么?uploads文件夹位于编写代码的同一文件夹中,或者位于该文件夹之外?是的,它位于同一文件夹中。然后,给出
$target_path=“uploads/”
而不是此
$target_path=“../uploads/”$target_path = $target_path .time() .basename( $_FILES['uploadedfile']['name']);