刚刚接触php难免会遇到很多坑
在文件上传处也有一个坑
首先要配置好phpstorm
不然会出现找不到这个index的情况
详情请看我的另一篇文章
http://blog.csdn.net/qq_32198277/article/details/50821992
一般我们上传表单都是
<html>
<body>
<form action="showpic.php" method="post" >
Name:<input type="text" name="name"><br>
<input type="submit">
</form>
</body>
</html>
处理表单就是
<html>
<body>
<?php
print_r($_POST['name']);
?>
</body>
</html>
但如果是上传文件的话
将表单改为
<html>
<body>
<form action="showpic.php" method="post" >
<input type="file" name="pic"><br>
<input type="submit">
</form>
</body>
</html>
处理的改为
<html>
<body>
<?php
print_r($_FILES['pic']);
?>
</body>
</html>
则会报错
Notice: Undefined index: pic in D:\xampp\htdocs\test\showpic.php on line 5
后来仔细看了一下视频然后又百度一下
发现我漏了一个很重要的地方
在表单要声明类型
enctype="multipart/form-data"
application/x-www-form-urlencoded: 窗体数据被编码为名称/值对。这是标准的编码格式; multipart/form-data: 窗体数据被编码为一条消息,页上的每个控件对应消息中的一个部分,上传附件用到; text/plain: 窗体数据以纯文本形式进行编码,其中不含任何控件或格式字符。 enctype="multipart/form-data是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据,进行下面的操作
正确的表单应该是
<html> <body> <form action="showpic.php" method="post" enctype="multipart/form-data"> <input type="file" name="pic"><br> <input type="submit"> </form> </body> </html>
在showpic.php处理和输出图片为
<html> <body> <?php $file=$_FILES['pic']; $name=$file['name']; move_uploaded_file($file['tmp_name'],$name); echo "<img src='$name'>" ?> </body> </html>