使用PHP脚本保存在本地主机的图像文件 - 不会工作

使用PHP脚本保存在本地主机的图像文件 - 不会工作

问题描述:

所有,使用PHP脚本保存在本地主机的图像文件 - 不会工作

我跟随下面的链接让PHP工作在我的MacBook Pro(OS 10.12.6)。我甚至会在我使用 http://localhost/~USERNAME/phpinfo.php时出现phpinfo。 〜USERNAME被替换为我的真实用户名。

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

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

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

LINK设置PHP上MAC

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 
+0

你可能已经PHP的错误报告关闭。即使如此,如果你看着Apaches错误日志(下次!),你可能会找到@RiggsFolly给你的答案:) –

+0

你有看到日志的建议吗?我查看了/ var/log/apache2并重命名了error_log和access_log。然而,我尝试运行我的网站后没有创建新的error_log文件。 –

+0

将这两行添加到项目调用的第一个PHP文件(index.php等)中。它不必在每个文件中都存在,只需在执行其余代码之前调用一次即可:'ini_set('display_errors',1); error_reporting(E_ALL);'这只会把错误放在你的屏幕上,这对你来说更加容易。 –

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

<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); 
    //       ^^^^^^^^^^^^ 

?> 
+0

RiggsFolly,我逐字复制了你的建议代码。但是我的问题仍然存在。我会研究如何查看错误代码....正如Lucas Krupinski所提到的那样。 –