本地文件地址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>";
?>代码为何出错,拜托
$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>";
?>代码为何出错,拜托
本地文件HTTP POST到服务器才能move_uploaded_file,看手册php.net/move_uploaded_file
-----------------------------------------------------------------------
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 上传的文件以确保这个操作的安全性。
*$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' );
$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,如果不通过互联网就再本地传不可行的~~~
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函数调用
http://cn2.php.net/manual/zh/features.file-upload.php