所有
我已按照以下链接使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
答案 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);
// ^^^^^^^^^^^^
?>