当前位置:编程问答 > php >

PHP高手进

问题:<?
if($_FILES[upfile][name]=="") //没有选定文件的处理
{
echo "没有选择文件"; //显示提示信息
echo "<p>";
echo "点<a href=\"8-15.php\">这里</a>返回"; //给出返回连接
}
else //选定文件
{
$filepath="images/"; //定义路径
$filename=$filepath.$_FILES[upfile][name]; //新的路径及文件名
echo $_FILES[upfile][name]; //显示文件名
echo "<p>";
echo $_FILES[upfile][size]; //显示文件大小
echo "<p>";
echo $_FILES[upfile][type]; //显示文件类型
if(copy($_FILES[upfile][tmp_name],$filename)) //复制文件的目标路径
{
unlink($_FILES[upfile][tmp_name]); //删除原有文件
echo "<p>";
echo "指定文件已经成功上传!";
echo "<p>";
echo "点<a href=\"8-15.php\">这里</a>返回"; //给出返回连接
}
else
{
echo "文件上传失败!";
}
}
?>
这段代码只能实现本地文件的上传,我想把他改成能将本地文件上传到FTP空间程序应该说怎么改。谢谢!
追问:$filename   = '01.jpg';       //这个就是cache文件夹下面的文件名$source_file = "cache/".$filename;     //也就是你开发的本体服务器或者本地目录echo $source_file;$destination_file="d:/WEB/".$filename; //目标地址 相对说就是要上传的文件 上传到你想上传的服务器上去



这几句有点不懂
答案:
<?php
$ftp_server ="127.0.01";
$ftp_user ="liutaiyu";
$ftp_pass ="liutaiyu";

$conn_id = @ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");
$login_result = @ftp_login($conn_id,$ftp_user,$ftp_pass);

if((!$conn_id)||(!$login_result)){
echo"FTP connection has failed!";
echo"Attempted to connect to $ftp_server for user $ftp_user_name";
exit;
}else{
echo"Connected to $ftp_server,for user $ftp_user_name";
}


$filename = '01.jpg'; //这个就是cache文件夹下面的文件名
$source_file = "cache/".$filename; //也就是你开发的本体服务器或者本地目录

echo $source_file;

$destination_file="d:/WEB/".$filename; //目标地址 相对说就是要上传的文件 上传到你想上传的服务器上去

$upload = @ftp_put($conn_id,$destination_file,$source_file,FTP_BINARY) or die("Couldn't connect to $ftp_server");
@ftp_quit($conn_id);
if(!$upload){
echo"FTP upload has failed!";
}else{
echo"Uploaded $source_file to $ftp_server as $destination_file";
}

@ftp_close($conn_id);

?>
<form enctype="multipart/form-data" action="upload.php" method="post"> 
<input type="hidden" name="max_file_size" value="100000">
<input name="userfile" type="file">  
<input type="submit" value="上传文件">
</form>
其中,

请注意<form enctype="multipart/form-data"......>这是一个标签,我们要实现文件的上传,必须指定为multipart/form-data,否则服务器将不知道要干什么。
值得注意的是文件upload.html中表单选项 MAX_FILE_SIZE 的隐藏值域,通过设置其Value(值)可以限制上载文件的大小。
MAX_FILE_SIZE 的值只是对浏览器的一个建议,实际上它可以被简单的绕过。因此不要把对浏览器的限制寄希望于该值。实际上,PHP 设置中的上传文件最大值,是不会失效的。但是最好还是在表单中加上 MAX_FILE_SIZE,因为它可以避免用户在花时间等待上传大文件之后才发现该文件太大了的麻烦。
upload.php
$f=&$HTTP_POST_FILES['Myfile'];
$dest_dir='uploads';//设定上传目录
$dest=$dest_dir.'/'.date("ymd")."_".$f['name'];//设置文件名为日期加上文件名避免重复
$r=move_uploaded_file($f['tmp_name'],$dest);
chmod($dest, 0755);//设定上传的文件的属性
或者
<?copy($_FILES[MyFile][tmp_name],$_FILES[MyFile][name]);?>
以上范例中 $_FILES 数组的内容如下所示。我们假设文件上传字段的名称为 userfile(名称可随意命名)

$_FILES['userfile']['name'] 客户端机器文件的原名称。
$_FILES['userfile']['type'] 文件的 MIME 类型,需要浏览器提供该信息的支持,例如“image/gif”。
$_FILES['userfile']['size'] 已上传文件的大小,单位为字节。
$_FILES['userfile']['tmp_name'] 文件被上传后在服务端储存的临时文件名。
$_FILES['userfile']['error'] 和该文件上传相关的错误代码
值:0; 没有错误发生,文件上传成功。
值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
值:3; 文件只有部分被上传。
值:4; 没有文件被上传。

上一个:PHP到底要怎么运行?
下一个:PHP 代码求解

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,