当前位置:  编程技术>php
本页文章导读:
    ▪php 文件上传时move_uploaded_file不能移动文件的问题      php上传文件,最后是用 move_uploaded_file 移动文件的,不过它却不工作了,copy 或 rename 使用还是正常的 源代码中看到 把文件名 和 php 配置中的 upload_tmp_dir 这个参数进行比较,如果文件在这个目.........
    ▪php 普通表单多文件上传的例子      php处理上传很方便,上传信息保存在$_FILES数组中,然后借助php相关函数进行处理即可。 当然,如果你基础已经打的不错,可以看看php文件上传的更多实现方法: php 多文件上传的简单例子(入.........
    ▪php ftp文件上传函数的简单例子      在之前的php 教程中,我们给出过一个php ftp上传的例子,参见:php使用ftp函数实现简单上传功能。 今天给出一个相对简单点的,适合初学的朋友参考。 <?php /** ftp文件上传 site www. */ .........

[1]php 文件上传时move_uploaded_file不能移动文件的问题
    来源: 互联网  发布时间: 2013-12-24

php上传文件,最后是用 move_uploaded_file 移动文件的,不过它却不工作了,copy 或 rename 使用还是正常的

源代码中看到 把文件名 和 php 配置中的 upload_tmp_dir 这个参数进行比较,如果文件在这个目录下面,那么 move_uploaded_file 才会进行移动操作。而且这个比较是大小写敏感,/ \ 在Windows 下面也是不一样的。
而在PHP配置文件解析时,会调用一个realpath 函数,也就是是说,你在move_uploaded_file 之前,必须对$file['tmp_name'] = realpath($file['tmp_name']); realpath 一下。

另外,还要注意,move_uploaded_file 如果配置成一个无法访问的路径,move_uploaded_file 总是不能成功移动文件。


    
[2]php 普通表单多文件上传的例子
    来源: 互联网  发布时间: 2013-12-24

php处理上传很方便,上传信息保存在$_FILES数组中,然后借助php相关函数进行处理即可。
当然,如果你基础已经打的不错,可以看看php文件上传的更多实现方法:
php 多文件上传的简单例子(入门)
php 多图片上传的简单例子(图文)
php上传多个文件的代码
php多文件上传的三种方法

来看代码吧。

<?php
/*
* class: 文件上传类
* www: www.
* date: 2013.1.20
* wwwRoot 网站根目录
*/

class Upload {
public $up_ext=array(), $up_max=5210, $up_dir;
private $up_name, $up_rename=true, $up_num=0, $up_files=array(), $up_ret=array();

function __construct($name, $ext=array(), $rename=true) {
if (!empty($name)) {
$this->up_name = $name;
!empty($ext) && $this->up_ext = $ext;
$this->up_rename = $rename;
$this->up_dir = wwwRoot.
$GLOBALS['cfg_upload_path'];
$this->InitUpload();
} else {
exit('upload文件域名称为空,初始化失败!');
}
}

private function InitUpload() {
if (is_array($_FILES[$this->up_name])) {
$up_arr = count($_FILES[$this->up_name]);
$up_all = count($_FILES[$this->up_name], 1);
$up_cnt = ($up_all - $up_arr) / $up_arr;
for ($i = 0; $i < $up_cnt; $i ++) {
if ($_FILES[$this->up_name]['error'][$i] != 4) {
$this->up_files[] = array(
'tmp_name' => $_FILES[$this->up_name]['tmp_name'][$i],
'name' => $_FILES[$this->up_name]['name'][$i],
'type' => $_FILES[$this->up_name]['type'][$i],
'size' => $_FILES[$this->up_name]['size'][$i],
'error' => $_FILES[$this->up_name]['error'][$i]
);
}
}
$this->up_num = count($this->up_files);
} else {
if (isset()($_FILES[$this->up_name])) {
$this->up_files = array(
'tmp_name' => $_FILES[$this->up_name]['tmp_name'],
'name' => $_FILES[$this->up_name]['name'],
'type' => $_FILES[$this->up_name]['type'],
'size' => $_FILES[$this->up_name]['size'],
'error' => $_FILES[$this->up_name]['error']
);
$this->up_num = 1;
} else {
exit('没找找到需要upload的文件!');
}
}

$this->ChkUpload();
}

private function ChkUpload() {
if (empty($this->up_ext)) {
$up_mime = array('image/wbmp', 'image/bmp', 'image/gif', 'image/pjpeg', 'image/x-png');
foreach ($this->up_files as $up_file) {
$up_allw = false;
foreach ($up_mime as $mime) {
if ($up_file['type'] == $mime) {
$up_allw = true; break;
}
}
!$up_allw && exit('不允许上传'.$up_file['type'].'格式的文件!');

if ($up_file['size'] / 1024 > $this->up_max) {
exit('不允许上传大于 '.$this->up_max.'K 的文件!');
}
}
} else {
foreach ($this->up_files as $up_file) {
$up_ext = end(explode()('.', $up_file['name']));

$up_allw = false;
foreach ($this->up_ext as $ext) {
if ($up_ext == $ext) {
$up_allw = true; break;
}
}
!$up_allw && exit('不允许上传.'.$up_ext.'格式的文件!');

if ($up_file['size'] / 1024 > $this->up_max) {
exit('不允许上传大于 '.$this->up_max.'K 的文件!');
}
}
}

$this->Uploading();
}

private function Uploading() {
if (IO::DIRCreate($this->up_dir)) {
if (chmod($this->up_dir, 0777)) {
if (!empty($this->up_files)) {
foreach ($this->up_files as $up_file) {
if (is_uploaded_file($up_file['tmp_name'])) {
$file_name = $up_file['name'];
if ($this->up_rename) {
$file_ext = end(explode('.', $file_name));
$file_rnd = substr(md5(uniqid()), mt_rand(0, 26), 6);
$file_name = date('ymdHis').'_'.$file_rnd.'.'.$file_ext;
}
$file_name = $this->up_dir.'/'.$file_name;

if (move_uploaded_file($up_file['tmp_name'], $file_name)) {
$this->up_ret[] = str_replace()(wwwRoot, '', $file_name);
} else {
exit('文件上传失败!');
}
}
}
}
} else {
exit('未开启写入权限!');
}
} else {
exit('上传目录创建失败!');
}
}

public function GetUpload() {
return empty($this->up_ret) ? false : $this->up_ret;
}

function __destruct() {}
}
?>

    
[3]php ftp文件上传函数的简单例子
    来源: 互联网  发布时间: 2013-12-24

在之前的php 教程中,我们给出过一个php ftp上传的例子,参见:php使用ftp函数实现简单上传功能。

今天给出一个相对简单点的,适合初学的朋友参考。

<?php
/**
 ftp文件上传
 site www.
*/
// 定义变量
$local_file = 'local.zip';
$server_file = 'server.zip';
// 连接FTP服务器
$conn_id = ftp_connect($ftp_server);
//验证登录服务器
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
// 下载文件
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
echo "下载 $local_file 文件成功 n";
} else {
echo "下载失败n";
}
// 关闭ftp连接
ftp_close($conn_id);
?>

说明:
ftp_connect — 建立一个新的 FTP 连接
ftp_login — 登录 FTP 服务器
ftp_get — 从 FTP 服务器上下载一个文件
 

您可能感兴趣的文章:
php ftp函数应用(范例,ftp类,创建目录函数等)
php自定义ftp类与调用实例
php ftp类(上传、下载、复制、移动等)
仿CodeIgniter的FTP类的实现代码
php实现ftp上传的类与调用示例
php ftp下载文件的代码一例
php使用ftp下载文件的简单例子
php实现文件的自动ftp更新
又一个php FTP上传类
php使用ftp函数实现简单上传功能
php使用ftp函数上传文件的简单例子
使用ftp传送、下载、删除文件的三个例子
php使用ftp函数创建目录(生成静态)
php写的ftp文件上传类
php的ftp函数操作实例
无需重新编译php加入ftp扩展的方法


    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3