本地文件地址D:\AppServ\www\6.jpg,如何才能把文件6.jpg上传到服务器上<?php
$bi="D:\AppServ\www\6.jpg";
if (move_uploaded_file($bi,'http://192.168.1.153/upfile/jzhpengbill.jpg')) {
print "文件上传成功。   下面有更多的debug信息:\n";
print_r($_FILES);
} else {
print "没有成功!   下面有更多的debug信息:\n";
print_r($_FILES);
}
print "</pre>";
?>代码为何出错,拜托

解决方案 »

  1.   

    你这样移动的是服务器上的D:\AppServ\www\6.jpg,当然不行
    本地文件HTTP POST到服务器才能move_uploaded_file,看手册php.net/move_uploaded_file
      

  2.   

    用copy()函数试一试。
    -----------------------------------------------------------------------
    bool move_uploaded_file ( string filename, string destination )
    本函数检查并确保由 filename 指定的文件是合法的上传文件(即通过 PHP 的 HTTP POST 上传机制所上传的)。如果文件合法,则将其移动为由 destination 指定的文件。 如果 filename 不是合法的上传文件,不会出现任何操作,move_uploaded_file() 将返回 FALSE。 如果 filename 是合法的上传文件,但出于某些原因无法移动,不会出现任何操作,move_uploaded_file() 将返回 FALSE。此外还会发出一条警告。 这种检查显得格外重要,如果上传的文件有可能会造成对用户或本系统的其他用户显示其内容的话。 注: move_uploaded_file() 对安全模式和 open_basedir 都是敏感的。不过,限制只针对 destination 路径,因为允许移动上传的文件名 filename 可能会与这些限制产生冲突。move_uploaded_file() 仅作用于通过 PHP 上传的文件以确保这个操作的安全性。 
      

  3.   

    /*
    *$fname 为上传的图片名
    *$fpath 为文件要保存的路径
    *$upname 为保存该文件设一个前缀
    */
    function upfile( $fname, $fpath, $upname )
    {
        if( is_uploaded_file( $_FILES[$fname]['tmp_name'] ) )
        {
              $upfile = $upname.time().rand( 1, 100000 ).".jpg"; //保存为jpg格式的
             
             $fpath = $fpath.$upfile;
             
             if( move_uploaded_file( $_FILES[$fname]['tmp_name'], $fpath ) )
             {
                 return $upfile;//返回文件名
             }
             else
             {
                 echo "<script>alert('上传失败')</script>";
                 return false;
             }
        }
        else
        {
            if( $_FILES[$fname]['error'] == 2 || $_FILES[$fname]['error'] == 1 )
            {
                echo "<script>alert('上传失败,文件过大')</script>";
                return false;
            }
            
            return NULL;
        }
    }upfile('img','/usr/local/upfile','IMG' );
      

  4.   


    $upload_file=$_FILES['upload_file']['tmp_name'];  //文件
    $upload_file_name=$_FILES['upload_file']['name'];
    $store_dir = "d:/";// 上传文件的储存位置,网上的路径自己改下~
    //复制文件到指定目录
    move_uploaded_file($upload_file,$store_dir.$upload_file_name)这样才ok,如果不通过互联网就再本地传不可行的~~~
      

  5.   

    php.ini 中
    allow_url_fopen = On192.168.1.153/upfile 可用 ftp 访问时可以
    copy('D:/AppServ/www/6.jpg', 'ftp://192.168.1.153/upfile/jzhpengbill.jpg');
    或可尝试 http 协议,但不保证可行一般的做法是:
    1、在远端服务器放置接受文件上传的程序,本地服务器通过curl函数上传文件到远端服务器
    2、在远端服务器放置读取并保存文件的程序,在本地服务器用文件函数或include函数调用
      

  6.   

    LZ對$_FILES不熟悉,樓上幾位已經說明白,請仔細參詳,在下不多說了
      

  7.   

    搂主弄错了运行机制,服务器和客户端的交换是怎样进行的???这个需要POST表单。请察看:
    http://cn2.php.net/manual/zh/features.file-upload.php
      

  8.   

    楼上几位说的有道理,因为我是通过ajax把要上传的文件地址保存后传送给php,再由php去处理上传的事情