使用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
在输入必须在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);
// ^^^^^^^^^^^^
?>
RiggsFolly,我逐字复制了你的建议代码。但是我的问题仍然存在。我会研究如何查看错误代码....正如Lucas Krupinski所提到的那样。 –
你可能已经PHP的错误报告关闭。即使如此,如果你看着Apaches错误日志(下次!),你可能会找到@RiggsFolly给你的答案:) –
你有看到日志的建议吗?我查看了/ var/log/apache2并重命名了error_log和access_log。然而,我尝试运行我的网站后没有创建新的error_log文件。 –
将这两行添加到项目调用的第一个PHP文件(index.php等)中。它不必在每个文件中都存在,只需在执行其余代码之前调用一次即可:'ini_set('display_errors',1); error_reporting(E_ALL);'这只会把错误放在你的屏幕上,这对你来说更加容易。 –