search
Homephp教程php手册php文件上传之单文件上传,

php文件上传之单文件上传,

Jun 13, 2016 am 08:57 AM
formphpuploadfordocumentSimpleform

php文件上传之单文件上传,

为了简单一些,php文件跟form表单写在了一个文件里.

php单文件上传---->

<span> 1</span> <!DOCTYPE html>
<span> 2</span> <html>
<span> 3</span> <head>
<span> 4</span>     <meta charset="UTF-8" />
<span> 5</span> </head>
<span> 6</span> <body>
<span> 7</span> <form action="upload.php" method="post" enctype="multipart/form-data">
<span> 8</span>     请选择要上传的文件:<input type="file" name="myfile"/><br /><br />
<span> 9</span>     <input type="submit" value="submit" />
<span>10</span>     <input type="hidden" name="MAX_FILE_SIZE" value="5982"/>
<span>11</span> </form>
<span>12</span> </body>
<span>13</span> </html>
<span>14</span> 
<span>15</span> 
<span>16</span> 
<span>17</span> <?<span>php
</span><span>18</span>     <span>if</span>(!<span>empty</span>(<span>$_FILES</span><span>)){
</span><span>19</span>         <span>header</span>('content-type:text/html;charset=utf-8'<span>);
</span><span>20</span>         <span>$fileInfo</span>=<span>$_FILES</span>['myfile'<span>];
</span><span>21</span>         <span>print_r</span>(<span>$_FILES</span><span>);
</span><span>22</span>         <span>//</span><span>如果上传出错则退出并打印错误信息</span>
<span>23</span>         <span>if</span>(<span>$fileInfo</span>['error']>0<span>){
</span><span>24</span>             <span>switch</span>(<span>$fileInfo</span>['error'<span>]){
</span><span>25</span>                 <span>case</span> 1:
<span>26</span>                     <span>$msg_error</span>='上传文件超过了php配置文件中UPLOAD_MAX_FILESIZE选项的值'<span>;
</span><span>27</span>                     <span>break</span><span>;
</span><span>28</span>                 <span>case</span> 2:
<span>29</span>                     <span>$msg_error</span>='超过了表单MAX_FILE_SIZE限制的大小'<span>;
</span><span>30</span>                     <span>break</span><span>;
</span><span>31</span>                 <span>case</span> 3:
<span>32</span>                     <span>$msg_error</span>='文件部分上传'<span>;
</span><span>33</span>                     <span>break</span><span>;
</span><span>34</span>                 <span>case</span> 4:
<span>35</span>                     <span>$msg_error</span>='没有文件上传'<span>;
</span><span>36</span>                     <span>break</span><span>;
</span><span>37</span>                 <span>case</span> 6:
<span>38</span>                     <span>$msg_error</span>='没有找到临时目录'<span>;
</span><span>39</span>                     <span>break</span><span>;
</span><span>40</span>                 <span>case</span> 7:
<span>41</span>                 <span>case</span> 8:
<span>42</span>                     <span>$msg_error</span>='系统错误'<span>;
</span><span>43</span>                     <span>break</span><span>;
</span><span>44</span> <span>            }
</span><span>45</span>             <span>exit</span>(<span>$msg_error</span><span>);
</span><span>46</span> <span>        }
</span><span>47</span>         <span>$filename</span>=<span>$fileInfo</span>['name'<span>];
</span><span>48</span>         <span>//</span><span>获取文件的扩展名</span>
<span>49</span>         <span>$ext</span>=<span>strtolower</span>(<span>substr</span>(<span>$filename</span>,<span>strrpos</span>(<span>$filename</span>,'.')+1<span>));
</span><span>50</span>         <span>//</span><span>定义可允许上传的扩展名</span>
<span>51</span>         <span>$allowExt</span>=<span>array</span>('txt','html','png','gif','jpeg'<span>);
</span><span>52</span>         <span>//</span><span>检测上传文件的类型</span>
<span>53</span>         <span>if</span>(!<span>in_array</span>(<span>$ext</span>,<span>$allowExt</span><span>)){
</span><span>54</span>             <span>exit</span>('上传文件类型错误'<span>);
</span><span>55</span> <span>        }
</span><span>56</span> 
<span>57</span> 
<span>58</span>        <span>//</span><span>检测文件的大小</span>
<span>59</span>         <span>$maxSize</span>=2097152<span>;
</span><span>60</span>         <span>if</span>(<span>$fileInfo</span>['size']><span>$maxSize</span><span>){
</span><span>61</span>             <span>exit</span>('上传文件过大'<span>);
</span><span>62</span> <span>        }
</span><span>63</span> 
<span>64</span>         <span>//</span><span>检测是否为HTTP POST方式上传上来的</span>
<span>65</span>         <span>if</span>(!<span>is_uploaded_file</span>(<span>$fileInfo</span>['tmp_name'<span>])){
</span><span>66</span>             <span>exit</span>('文件不是通过HTTP POST方式提交上来的'<span>);
</span><span>67</span> <span>        }
</span><span>68</span> 
<span>69</span>         <span>//</span><span>确保文件名字唯一,防止同名文件被覆盖</span>
<span>70</span>         <span>$uniqName</span>=<span>md5</span>(<span>uniqid</span>(<span>microtime</span>(<span>true</span>),<span>true</span>)).'.'.<span>$ext</span><span>;
</span><span>71</span> 
<span>72</span>         <span>//</span><span>定义保存在哪个文件夹下,如果没有该文件夹则创建</span>
<span>73</span>         <span>$path</span>='uploads'<span>;
</span><span>74</span>         <span>if</span>(!<span>file_exists</span>(<span>$path</span><span>)){
</span><span>75</span>             <span>mkdir</span>(<span>$path</span>,0777,<span>true</span><span>);
</span><span>76</span>             <span>chmod</span>(<span>$path</span>,0777<span>);
</span><span>77</span> <span>        }
</span><span>78</span>         <span>$destination</span>=<span>$path</span>.'/'.<span>$uniqName</span><span>;
</span><span>79</span> 
<span>80</span>         <span>//</span><span>移动文件至要保存的目录</span>
<span>81</span>         <span>if</span>(! @<span>move_uploaded_file</span>(<span>$fileInfo</span>['tmp_name'],<span>$destination</span><span>)){
</span><span>82</span>             <span>exit</span>('文件上传失败'<span>);
</span><span>83</span> <span>        }
</span><span>84</span> 
<span>85</span>         <span>echo</span> '上传成功'<span>;
</span><span>86</span> 
<span>87</span> <span>    }
</span><span>88</span> ?>

 

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

SublimeText3 English version

SublimeText3 English version

Recommended: Win version, supports code prompts!

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function