说错了,单引号改成双引号
仍旧是乱码
我也是nginx上传后出现404
move_uploaded_file($tmp_name,"updown/".$filename);
后续课程有讲
html中form代码:
<form action="admin.php" method="post" enctype="multipart/form-data">
请选择你要上传的文件:<input type="file" name="myfile" /><br />
<input type="submit" value="文件上传" />
</form>
php中输出文件信息的代码:var_dump($_FILES);
input标签没给name属性吧
单击“开始|运行”,然后在“运行”对话框中输入“%temp%”,能够打开临时文件夹。
你先看一下“error”状态,看看是对应的哪种错误状态,比如post数据超了,上传文件大小限制了等,用状态号对应去找,可能是配置文件对上传的文件大小做了限制,或者你上传的图片太大了,试试吧。
把$tmp_name = $_FILES['myFile']里的单引号换成双引号试试 其他的以此类推
en 知道了 谢谢
upload_max_filesize:2M
copy($tmp_name,"teat0/".$filename);
"teat0/" 你这个文件夹在哪,应该是路径写错了,文件夹和你的PHP应该是同级目录才可以这样写的.
上传成功是指的files信息齐全,并且error为0的话,那应该是move函数部分有问题,如果move_uploaded_file函数所需要的temp_name文件名和目录文件名都没问题,那我也爱莫能助了
能把具体代码贴出来吗
$error=$_FILES['myFile']['error'];
if(isset($tmp_name)){
$filename =iconv('utf-8','gb2312',$filename);
}
move_uploaded_file($tmp_name, "uploads/".$filename);
利用Iconv函数对文件名进行重新编码,这样上传的中文名称,不会乱码
zend studio
查看php.ini 查看upload_tmp_dir= 路径,也可通过phpinfo()函数查看core下的upload_tmp_dir,那里是文件上传临时文件目录,或者,是没有写权限?
你都已经移动了,还去拷贝文件干嘛
看了下一节找到原因了。。咳咳、、
是使用iconv函数是可以解决你的问题的
函数原型:string iconv ( string in_charset, string out_charset, string str ) 使用例子:$content = iconv("GBK", "UTF-8", $content); 例子如下: <?php header("Content-Type:text/html;charset=utf-8"); $submit = $_POST['submit']; if(isset($submit) && trim($submit) != ''){ $file = $_FILES['file']; if(isset($file['tmp_name'])){ $name = iconv('utf-8','gb2312',$file['name']); //利用Iconv函数对文件名进行重新编码 if(move_uploaded_file($file['tmp_name'],$name)){ echo '文件上传成功!'; echo '图片信息:'; print_r($file); } } } ?>
我也出了这个问题,看了下是文件夹建错地方了,应该是路径的问题吧。
copy是拷贝,move这个是直接移动
PHP中有垃圾回收机制,如果你没做操作就会被释放了
^-^...
给这个文件夹权限呀 是windows还是linux?
^-^...
嗯 解决了就ok
^-^...
嗯 可以 不过最好还是搞清楚路径
不要说和我一样,以后不一样的时候自己也能解决这个问题
^-^...
不会啊,你把代码粘贴出来看看
报的是目录没找到嘛?
^-^...
嗯 应该可以啊 你这window下 不是系统目录应该有权限把
^-^...