<td><input type='file' name='video[]' /></td>
<td><input type='file' name='video[]' /></td>
<td><input type='file' name='video[]' /></td>
</tr>
<tr>
<td><input type='file' name='pic[]' /></td>
<td><input type='file' name='pic[]' /></td>
<td><input type='file' name='pic[]' /></td>
</tr>
这种不同name的多文件上传,怎么改UploadFile.class.php类,来实现多name多文件上传
index.html
<form method="POST" enctype="multipart/form-data" action="{:U('Index/upload')}">
<tr >
<td>flv文件</td>
<td><input type="file" name="flv" /></td>
</tr>
<tr >
<td>视频压缩文件</td>
<td><input type="file" name="movie" /></td>
</tr>
<tr>
<td>缩略图</td>
<td><input type="file" name="img" /></td>
</tr>
<input type="submit" value="上传" />
</form>
复制代码
UploadFile.class.php 162行
if (!is_dir($savePath)) {
// 检查目录是否编码后的
if (is_dir(base64_decode($savePath))) {
$savePath = base64_decode($savePath)
} else {
// 尝试创建目录
if (!mkdir($savePath)) {
$this->error = '上传目录' . $savePath . '不存在'
return false
}
}
} else {
if (!is_writeable($savePath)) {
$this->error = '上传目录' . $savePath . '不可写'
return false
}
}
复制代码
改成
if(!is_array($savePath)){
if (!is_dir($savePath)) {
// 检查目录是否编码后的
if (is_dir(base64_decode($savePath))) {
$savePath = base64_decode($savePath)
} else {
// 尝试创建目录
if (!mkdir($savePath)) {
$this->error = '上传目录' . $savePath . '不存在'
return false
}
}
} else {
if (!is_writeable($savePath)) {
$this->error = '上传目录' . $savePath . '不可写'
return false
}
}
}
复制代码
UploadFile.class.php 194行
$file['savepath'] = $savePath
复制代码
改成
$file['savepath'] = is_array($savePath)?$savePath[$key]:$savePath
复制代码
Public function upload() {
import('Org.Net.UploadFile')
$upload = new \Org\Net\UploadFile()// 实例化上传类
$upload->maxSize = 3145728// 设置附件上传大小
$upload->allowExts = array('jpg', 'gif', 'png', 'jpeg')// 设置附件上传类型
//$upload->savePath = './Public/Uploads/'// 设置附件上传目录
$upload->savePath = array('flv'=>'./Public/Uploads/flv/','movie'=>'./Public/Uploads/movie/','img'=>'./Public/Uploads/img/')
if (!$upload->upload()) {
$this->error($upload->getErrorMsg())
} else {// 上传成功 获取上传文件信息
$info = $upload->getUploadFileInfo()
}
}
复制代码
$upload->savePath 改为数组
./Public/Uploads/flv/
./Public/Uploads/movie/
./Public/Uploads/img/
这3个目录要手动创建 这样在就变成不影响原来程序的
情况下实现上传多个文件到不同的目录了
//多文件上传以及添加入库function addok(){
//多文件上传
$upload = new \Think\Upload()// 实例化上传类
$upload->maxSize = 3145728 // 设置附件上传大小
$upload->exts = array('jpg', 'gif', 'png', 'jpeg')// 设置附件上传类型
$upload->rootPath = './'
$upload->savePath = './Public/Uploads/'// 设置附件上传目录// 上传文件
$info = $upload->upload()
if(!$info) {// 上传错误提示错误信息
$this->error($upload->getError())
}
//print_r($info)die
if($info){
$data=I('post.')
$tu=D('tu')
for($i=0$i<count($info)$i++){
$image1=$info[$i]['savepath'].$info[$i]['savename']
$img=substr($image1,9)
//print_r($image1)die
//缩略图上传
$image = new \Think\Image()
$image->open($image1)// 按照原图的比例生成一个最大为150*150的缩略图并保存为thumb.jpg
$image2="./Public/thumb/".rand().'jpg'
$image->thumb(150, 150)->save($image2)
//print_r($image2)die
$img2=substr($image2,9)
$data['image']=$img
$data['suo']=$img2
$re=$tu->add($data)
}
if($re){
$this->success('添加成功',U('list1'))
}else{
$this->error('添加失败')
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)