php上传原理其实挺简单的,主要注意点如下:
①form表单提交,方式必须是post,另外form里面加上enctype="multipart/form-data"这句话的意思是对上传的文件以文件流的方式处理,也就是告诉浏览器,我这是个文件,不是普通的文字类型的。
②点击浏览找到图片之后其实已经完成了这样一个过程,把选择的文件存在服务器端的C:\WINDOWS\Temp文件夹下,然后会自动生成一个文件名,这个文件名是由Apache还是由php管理的?不太清楚,但是确实是创建了这样的文件。文件将被存储在超全局变量$_FILES中。
③点击提交的时候提交到另一个页面,比如说这个页面是upload.php,这个页面的功能是实现文件上传到指定位置的功能。首先,用if(is_uploaded_file($_FILES['file输入框的名字']['tmp_name']),判断下有没有将文件传到Temp文件夹下,如果有的话,下面要做的功能就是将文件移动到你所想转存的位置,其实相当于copy了,用函数move_uploaded_file(Temp下的文件名,转存路径+文件名)。这样就ok了。
我遇到的问题:
刚开始我以为上传的时候对中文文件还得转码,于是用了iconv函数,传中文文件时,功能正常,但是传的那个位置显示的却是打不开的文件,而且文件名称也不显示中文,比如002论文.docx,只显示002.郁闷了好久,最后将iconv函数弃之不用,上传功能一切都正常了。