thinkphp 文件上传类wamp环境无法上传文件问题解决

环境:

1、wamp:php5.4.12

2、ThinkPHP_Extend_3.1.2 中UploadFile.class.php

代码:

function upload(){

import(‘UploadFile.class‘);

$upload = new UploadFile();// 实例化上传类

$upload->maxSize  = 3145728 ;// 设置附件上传大小

$upload->allowExts  = array(‘jpg‘, ‘gif‘, ‘png‘, ‘jpeg‘);// 设置附件上传类型

$upload->savePath =  ‘./temp/‘;// 设置附件上传目录

if(!$upload->upload()) {// 上传错误提示错误信息

echo($upload->getErrorMsg());

}else{// 上传成功 获取上传文件信息

$info =  $upload->getUploadFileInfo();

}

// 保存表单数据 包括附件数据

echo $info[0][‘savename‘]; // 保存上传的照片根据需要自行组装

}

问题:

1、提示“非法上传文件”

2、提示“文件上传保存错误”

分析:

UploadFile.class.php文件中打印输出文件路径名:

echo $file[‘tmp_name‘]; D:\\wamp\\tmp\\phpF95B.tmp

这个路径名异常,应该是D:\wamp\tmp\phpF95B.tmp才能正常上传文件。

深入研究:

当magic_quotes_gpc是Off的时候,由于为$_FILES数组添加了addslashes作用,出现了问题。也就在 magic_quotes_gpc是Off的PHP环境下都会出现此问题。

解决:

UploadFile.class.php文件中进行文件路径处理,类文件的bug:

public function upload($savePath =‘‘)入口方法进行处理

if (!get_magic_quotes_gpc()) {

$file[‘tmp_name‘] = str_replace(‘\\\\‘, ‘\\‘, $file[‘tmp_name‘]);

}

最终解决问题。

时间: 2024-10-15 03:49:10

thinkphp 文件上传类wamp环境无法上传文件问题解决的相关文章

艾恩ASP无组件上传类(上传组件)说明文档(from www.sysoft.cc)

艾恩ASP无组件上传类(上传组件)说明文档2010-1-18 By Anlige一.简介自从接触ASP就开始接触上传,看过一些上传类,但是总感觉封装的还是不够简单,因此自己尝试写一个能够用最少最简单的代码实现各种上传方式的上传类.在学校期间就开始写,一点点的完善.优化,到现在的版本,现在的版本能适应各种上传方式.上传类的主要的功能如下:1.自由设置最大上传大小.单文件最大上传大小2.自由设置允许上传的文件类型3.可设置文本的编码,以适应各种上传环境4.内置进度条,a用户可选择开启和关闭5.多种错

webpy分页类 + 上传类

webpy没有分页类.按照php的思路.自己编了一个.数据库用的是sqlite. class Page(object): '''分页类''' def __init__(self,page_size,data_count,page_current): import math self.size = page_size self.data_count = data_count self.page_current = int(page_current) self.page_max = int(math

一个能防止改名木马漏洞的无组件上传类

现在流行的asp上传组件除了无惧的化境之外,最多的可能就是ewebEditor 和Fckeditor的上传是,但是经过测试都很难防止改名为gif和asp文件上传,在FckEditor中改名后的asp木马不能直接上传,系统会检测到 <%等字符而拒绝,但是经过修改后的asp木马再改名为gif后却可以顺利上传,如在文件前端加上许多空行,或对木马进行加密处理.当然有人会认为木马传到服务器后会被杀掉,但是做过免杀的木马却会漏网.基于这些原因,本人开发了一个可以从根本上解决这个问题的无组件上传类.经过测试常

【PHP入门教程一】安装 WAMP 环境

本教程主要为php的面试及入门考虑,内容比较简单,高手勿喷.第一篇我们先来学习一下Wamp环境的安装,Wamp 即是windows + apache + mysql + php的缩写,本文介绍最新版本的安装.其实在windows开发环境中有套装的集成环境wamp可以直接使用,但是对于我们学习一门语言,也要学会它的环境,因此配置安装也是很重要的.对于production release,我们最重要的是学会Lamp环境,即是Linux环境下的安装.下一篇教程我们将会介绍.因为这个对于一个phper是

读取资源文件的工具类.

import java.util.ResourceBundle; import org.springframework.util.NumberUtils; /**读取资源文件的工具类. */ public class ConfigUtil { /**读取资源文件中的键值信息. * 例如有键值名为a,其对应的值为整数类型,那么方法即为:readConfigForObject("a",Integer.class). * @param keyName 键值名 * @param require

实例讲解ThinkPHP的UploadFile文件上传类的详细用法

ThinkPHP文件上传自带了上传类,使用起来非常方便,我们将以一个文件上传实例来讲解ThinkPHP上传类的实际用法,上传类使用时有详细的中文注释,可以非常方便的告诉你类的一些方法或变量的使用方法.FileAction.class.php PHP Code复制内容到剪贴板 <?php class FileAction extends Action{ function index(){ $file=M('file'); $list=$file->select(); $this->assi

ThinkPHP文件上传类

public function upload(){    $upload = new \Think\Upload(); // 实例化上传类    $upload->maxSize   =     3145728 ; // 设置附件上传大小    $upload->exts      =     array('jpg', 'gif', 'png', 'jpeg'); // 设置附件上传类型    $upload->rootPath  =     './Uploads/'; // 设置附件上

ajax结合文件上传类进行多文件的单个上传

今天做项目的时候碰见一个问题:之前一个同事离职之前做了一个网站,有一个上传商品详细图片的功能,当时已经完成,但是由于后期程序的有更改以及更改的程序员的水平也是参差不齐,最后导致程序bug很多,由于当时用的是一个框架,最终也没找到说明文档,后来我就重新写了一个结合ajax上传文件的upload.classs.php虽然界面欠缺美观,但是通俗易懂好维护. //首先是页面. index.php <!DOCTYPE html> <html lang="en"> <

Ueditor 1.4.3.1 使用 ThinkPHP 3.2.3 的上传类进行图片上传

在 ThinkPHP 3.2.3 中集成百度编辑器最新版 Ueditor 1.4.3.1,同时将编辑器自带的上传类替换成 ThinkPHP 3.2.3 中的上传类. ① 下载编辑器(下载地址:http://ueditor.baidu.com/website/download.html),解压后放入项目根目录的 Data 目录并且将解压出来的目录重命名为 ueditor. 项目中的控制器 ./Application/Admin/Controller/BlogController.class.php