我正在尝试学习如何在PHP中上传文件。我今天在OS X Yosemite 10.10.5上安装了最新版本的MAMP。它默认为PHP 7。 以下代码是W3C的一个小修改,但不起作用:
USB
我正在使用PHP Storm 10.当我使用PHP Storm链接启动应用程序Chrome时。当网页打开时,我得到了预期的结果:
<?php
/**
* File: upload.php
* Description:
*
* @author David Brodersen.
* @version:
* @date: 12/16/15
*/
echo 'Outputting $_POST:' . '<br />';
print_r($_POST);
echo '<br /><br />Outputting $_FILES["userfile"]:' . '<br />';
print_r($_FILES['userfile']);
echo '<br />User file stats:<br />';
echo 'name: ' . $_FILES['userfile']['name'] . '<br />';
echo 'type: ' . $_FILES['userfile']['type'] . '<br />';
echo 'size: ' . $_FILES['userfile']['size'] . '<br />';
echo 'tmp_name: ' . $_FILES['userfile']['tmp_name'] . '<br />';
echo 'error: ' . $_FILES['userfile']['error'] . '<br /><br /><br />';
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Upload</title>
</head>
<body>
<!-- The data encoding type, enctype, MUST be specified as below -->
<form enctype="multipart/form-data" action="upload.php" method="POST">
<!-- MAX_FILE_SIZE must precede the file input field -->
<input type="hidden" name="MAX_FILE_SIZE" value="300000"/>
<!-- Name of input element determines name in $_FILES array -->
Send this file: <input name="userfile" type="file"/> <br/>
<input type="submit" value="Send File"/>
</form>
</body>
</html>
我选择一个300 kb的图像文件并选择“发送文件”。选项卡中的微调器旋转了一段时间,然后页面更新到与第一次打开时相同的状态。没有统计数据。在PHP Storm的配置中,我使用php-cgi Interpreter for PHP 7。
答案 0 :(得分:0)
在php.ini
文件中查看这些值:
post_max_size
upload_max_filesize
对于MAMP,您通常可以在此路径中找到php.ini
:
/Applications/MAMP/bin/php/{PHP Version}/conf/php.ini
P.S:对于共享服务器,您无法访问php.ini
文件,您可以使用.htaccess
文件覆盖它们,如下所示:
php_value post_max_size 30M
php_value upload_max_filesize 30M
如果此解决方案不适合您,您可能需要联系您的主机提供商,因为他可能不允许您更改php.ini值。