move_uploded_file问题

时间:2012-11-09 13:05:49

标签: php

我试图弄清楚文件上传系统如何在PHP中运行。我的代码是:

if(isset($_FILES['profile_pic'])){
    $allowed_ext= array('jpg','jpeg','png','gif');
    $file_name = $_FILES['profile_pic']['name'];
    $file_ext = strtolower(end (explode('.',$file_name)));
    $file_size = $_FILES['profile_pic']['size'];
    $file_tmp = $_FILES['profile_pic']['tmp_name'];
    if(in_array($file_ext, $allowed_ext) === false || $file_size > 2000000){
        $display_block = 'display:block !important';
        $pic_errors ='<p>*  File format JPG, JPEG, GIF or PNG</p> <p>*  Smaller 1Mb</p>';
    } else {
        move_uploaded_file($file_tmp, '/members/');
        echo 'uploaded..';
    }
}//if(isset($_FILES['profile_pic']))

拥有权限一切似乎都没问题。

我得到的错误是:

  

警告:move_uploaded_file(/ members /)[function.move-uploaded-file]:无法打开流:第116行/home/a6671212/public_html/settings.php中的目录

如何解决此错误?

感谢所有人..

据我所知我有2个问题..

  1. 正如@Prison所写的.. move_uploaded_file($ file_tmp,'/ members /'); - 我没有在/ members /

  2. 之后写下文件名
  3. 正如@Ketan Patel所写,

  4. 如果可以这样说,该函数应该改为另一种格式。

    move_uploaded_file($ file_tmp,“/ members / $ file_name”); - 双引号......

    它工作!!!!!!!!谢谢YOUUU !!!

6 个答案:

答案 0 :(得分:3)

您必须定义文件名,例如:

move_uploaded_file($file_tmp, 'members/filename.ext');

或者,在您的情况下:

move_uploaded_file($file_tmp, 'members/'.$file_name);

另外,是/ members /目录(在你的文件系统的根目录下)?如果不是,请使用成员目录的相对路径或绝对路径。编辑:判断错误,我猜/ members /是一个目录,所以这应该工作正常:

move_uploaded_file($file_tmp, '/members/'.$file_name);

不要忘记先检查文件是否存在,否则move_uploaded_file将覆盖旧文件。

答案 1 :(得分:0)

函数move_upload_file()的作用类似于unix命令mv。您必须指定目标文件路径。

将您的代码行更改为此代码,它应该有效:

move_uploaded_file($file_tmp, './members/' . $file_name);

答案 2 :(得分:0)

尝试更改

move_uploaded_file($file_tmp, '/members/');

move_uploaded_file($file_tmp, 'members/' . $filename);

(删除第一个斜杠并添加文件名)

答案 3 :(得分:0)

你使用这个功能

  move_uploaded_file($tmp_name, "$uploads_dir/$name");

答案 4 :(得分:0)

move_uploaded_file($file_tmp, '/members/' . $fileName);

答案 5 :(得分:0)

尝试更改

move_uploaded_file($ file_tmp,'/ members /'); 在 move_uploaded_file($ file_tmp,'members /'+ $ filename);

并确保使用chamod设置权限。 chmod -R 0755成员。还要确保您的应用程序可以访问$ file_temp位置和读/写permision