使用PHP脚本将图像文件保存在localhost中 - 不会工作

时间:2017-08-13 19:38:28

标签: javascript php html apache webstorm

所有

我已按照以下链接使PHP在我的MacBook Pro(OS 10.12.6)上运行。我甚至在使用时都会出现phpinfo http://localhost/~USERNAME/phpinfo.php。 ~USERNAME将替换为我的真实用户名。

但是当我在WebStorm(2016.3.1)中创建一个新项目并使用下面的HTML和PHP代码时......我遇到了问题。我的目标是有一个上传输入按钮,以便用户可以将图像上传到我的localhost staging文件夹。但是,在WebStorm中运行我的index.html时,upload.php文件将下载到我的下载文件夹中。我在input元素中选择的文件永远不会进入暂存文件夹。

仅供参考,我修改了我的本地php.ini以包含以下条目。然后我重新启动了apache2(通过sudo apachectl restart)。

你们碰巧知道我做错了什么吗?谢谢你的帮助。

链接在MAC上设置PHP

https://ole.michelsen.dk/blog/setup-local-web-server-apache-php-    OSX-yosemite.html

HTML
<form action="upload.php" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload Image" name="submit">
</form>

PHP

 <?php

   $uploaddir = 'staging/';
   $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
   move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile);

 ?>

   PHP.INI

   file_uploads = on
   post_max_size = 40M
   upload_max_filesize = 40M
   post_max_size = 40M
   max_execution_time : 6000
   max_input_time : 6000
   memory_limit : 128M

1 个答案:

答案 0 :(得分:0)

输入中的name属性必须与PHP脚本中使用的名称相匹配

<input type="file" name="fileToUpload" id="fileToUpload">
                   ^^^^^^^^^^^^^^^^^^^ 

所以像这样修改PHP脚本

<?php

    $uploaddir = 'staging/';
    $uploadfile = $uploaddir . basename($_FILES['fileToUpload']['name']);
    //                                           ^^^^^^^^^^^^
    move_uploaded_file($_FILES['fileToUpload']['tmp_name'], $uploadfile);
    //                          ^^^^^^^^^^^^

?>