如何让客户将图像直接上传到我的 ubuntu16 服务器?

How to have customers upload a image directly to my ubuntu16 server?

提问人:Back2Basics 提问时间:1/18/2023 最后编辑:Back2Basics 更新时间:1/18/2023 访问量:40

问:

我有一个用于上传图像的 HTML 表单。我有一个额外的PHP文件用于该操作。 但是上传本身一直失败,我做错了什么?

这是 HTML 表单和 PHP

HTML表单 :

<form class="row" id="uploadbanner" enctype="multipart/form-data" method="post" action="./upload.php">
<input id="fileupload" name="myfile" type="file">
<input type="submit" value="submit" id="submit">
</form>         
    

PHP (上传.php)

 <html>
 <body>

 <?php

 $filename = $_FILES['file']['name'];

 $location = "./uploads/".$filename;

 if( move_uploaded_file($_FILES['file']['tmp_name'], $location)){
echo 'erfolgreich gesendet!';
 }else{
echo 'Problem beim Senden!';
 }
 ?>
 </body>
 </html>

我有ALS制作了一个名为:uploads的目录。它与上传的 .php 位于同一文件夹中

我使用命令授予了对文件夹的 755 权限:chmod 755 /var/www/html/uploads -R

我做错了什么?

PHP 图片 输入 上传 Ubuntu-16.04

评论

0赞 ADyson 1/18/2023
究竟是如何失败的?你没有告诉我们你得到了什么迹象。
0赞 Back2Basics 1/18/2023
我收到 Echo:发送问题。因此,表单确实提交了,但 te 图像从未上传到目录
0赞 ADyson 1/18/2023
php.net/manual/en/function.move-uploaded-file.php如果from不是有效的上传文件,则不会发生任何操作,move_uploaded_file() 将返回 false。您尚未报告收到警告,因此这是该问题最可能的解释。在继续尝试移动文件之前,您的代码不会检查文件是否有效。首先阅读 $_FILES 中的“error”属性 - 请参阅 php.net/manual/en/features.file-upload.post-method.phpphp.net/manual/en/features.file-upload.errors.php。也许其中一个错误正在发生。
0赞 ADyson 1/18/2023
或者,它可能只是一个简单的错别字,正如下面的答案现在所指出的那样。一些基本的调试(例如使用 )可能已经向您强调了这一点。你做过任何简单的测试吗?var_dump($_FILES);

答:

0赞 Chris Forrence 1/18/2023 #1

您的输入名称似乎是“myfile”,而不是您当前正在查看的“file”名称。更正此问题应该会使脚本按预期工作

<?php
$tmp_name = $_FILES['myfile']['tmp_name'];
$filename = $_FILES['myfile']['name'];

$location = "./uploads/" . $filename;

if (move_uploaded_file($tmp_name, $location)) {
    echo 'erfolgreich gesendet!';
} else {
    echo 'Problem beim Senden!';
}

评论

1赞 ADyson 1/18/2023
通常,我们只是在一个简单的错别字时投票关闭
0赞 Chris Forrence 1/18/2023
我不会认为这是一个错别字(因为“文件”的类型可以提供线索);至少在我的书中,拼写错误的函数名称更像是一个错别字
0赞 ADyson 1/18/2023
表单字段上的名称与PHP中用于从该字段读取的名称之间的简单不匹配。这可能不是手指在琴键上的失误,但这是一个微不足道的错误,对其他人来说都没有真正的兴趣。
0赞 Back2Basics 1/19/2023
@ChrisForrence它仍然不起作用.发送回声时仍然遇到问题。附加说明:所有文件都位于 /var/www/html 位置。也许我需要做点别的事情才能让它工作?