您的位置:首页 > 编程语言 > PHP开发

php curl模仿ftp文件上传代码

jinzhaozui 2013-09-05 19:25 211 查看
php教程 curl模仿ftp文件上传代码
<body>
<form action="curlupload.php" method="post" enctype="multipart/form-data">
<div>
<label for="upload">select file</label>
<input name="upload" type="file" />
<input type="submit" name="submit" value="upload" />
</div>
</form>
</body>
</html>
<?
if (isset($_post['submit'])) {
if (!empty($_files['upload']['name'])) {
$ch = curl_init();
$localfile = $_files['upload']['tmp_name'];
$fp = fopen($localfile, 'r');
curl_setopt($ch, curlopt_url, 'ftp://ftp_login:password@ftp.domain.com/'.$_files['upload']['name']);
curl_setopt($ch, curlopt_upload, 1);
curl_setopt($ch, curlopt_infile, $fp);
curl_setopt($ch, curlopt_infilesize, filesize($localfile));
curl_exec ($ch);
$error_no = curl_errno($ch);
curl_close ($ch);
if ($error_no == 0) {
$error = 'file uploaded succesfully.';
} else {
$error = 'file upload error.';
}
} else {
$error = 'please select a file.';
}
}
?>
好了下面封闭成类了
<?php
class curl_ftp
{

private $ftpname; //ftp用户名
private $ftppaw; //ftp密码
private $urlftp; //ftp地址
private $filename; //文件名

public __construct($name, $password, $ftp)
{
$this->ftpname = $name;
$this->ftppaw = $password;
$this->urlftp = $ftp;
// $this->filename = $filename;
}

public function getftp()
{
if (isset($_post['submit']))
{
if (!empty($_files['upload']['name']))
{
$ch = curl_init();
$this->filename = $_files['upload']['tmp_name'];
$fp = fopen($this->filename, 'r');
curl_setopt($ch, curlopt_url, $this->ftp.$this->filename);
curl_setopt($ch, curlopt_userpwd, "$name:password");
curl_setopt($ch, curlopt_upload, 1);
curl_setopt($ch, curlopt_infile, $fp);
curl_setopt($ch, curlopt_infilesize, filesize($this->filename));
curl_exec ($ch);
$error_no = curl_errno($ch);
curl_close ($ch);
if ($error_no == 0)
{
$error = '文件上传成功';
}
else
{
$error = '文件上传失败';
}
}
else
{
$error = '未选择文件';
}
}
}
}
标签:  curl ftp