`
xieye
  • 浏览: 834833 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

php单个文件上传类codeguy/upload使用

    博客分类:
  • PHP
阅读更多
注意:此扩展依赖于php的fileinfo扩展
mamp套件中已包含,只需在php.ini中添加一句
extension=php_fileinfo.dll,即可。
linux系统则:
yum install php-fileinfo
=================================
注意,上传相关配置
nginx
增加如下两行到nginx.conf的http{}段, 增大nginx上传文件大小限制
#设置允许发布内容为8M
client_max_body_size 8M;(说明,此参数可以放http段,也可以放server段,后者优先级高)

send_timeout    60;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;

====================================
php.ini
post_max_size = 8M
upload_max_filesize = 8M

另外,看情况设置
max_execution_time = 600 ;每个PHP页面运行的最大时间值(秒),默认30秒
max_input_time = 600 ;每个PHP页面接收数据所需的最大时间,默认60秒
memory_limit = 8m ;每个PHP页面所吃掉的最大内存,默认8M

==============================
php-fpm注意参数
request_terminate_timeout
request_slowlog_timeout
这两个参数如果设置过小的话会导致文件传输了一部分后连接关闭。

=============================
composer配置
"codeguy/upload":"1.3.2"


示例代码
<?php
require ("../vendor/autoload.php");

echo "<h1>上传demo</h1>";
if ($_SERVER['REQUEST_METHOD']=='GET') {
	echo <<<html
	<form method="POST" enctype="multipart/form-data">
	    <input type="file" name="foo" value=""/>
			<br><br><br>
	    <input type="submit" value="表单提交"/>
    </form>
html;
	exit;
} 

$storage = new \Upload\Storage\FileSystem(__DIR__."/upload");
if (count($_FILES)>0) {
	$keys = array_keys($_FILES);
	$form_file_name = $keys[0];
	$file = new \Upload\File($form_file_name, $storage);
}else {
	exit;
}


// Optionally you can rename the file on upload
$new_name=uniqid();
$file->setName($new_name);

// Validate file upload
// MimeType List => http://www.iana.org/assignments/media-types/media-types.xhtml
$file->addValidations(array(
		//You can also add multi mimetype validation
		new \Upload\Validation\Mimetype(array('image/png', 'image/gif', 'image/jpeg')),
		// Ensure file is no larger than 5M (use "B", "K", M", or "G")
		new \Upload\Validation\Size('5M'),
));

// Try to upload file
try {
	// Success!
	$file->upload();
	echo "upload success,新文件名:".$file->getNameWithExtension();
} catch (\Exception $e) {
	// Fail!
	$errors = $file->getErrors();
	echo $errors[0];
}
分享到:
评论

相关推荐

    PHP多文件上传类,支持单个和多个文件上传

    本文将详细介绍一个专门处理多文件上传的PHP类,该类同时支持单个文件上传,适用于各种上传需求。这个类来源于http://www.tutorialchip.com/php-upload-class/,经过了详细的测试和注释,方便开发者理解和使用。 ...

    php支持单个或者多个文件上传类

    本教程将深入探讨一个PHP文件上传类,该类能够处理单个或多个文件的上传操作。 首先,让我们理解文件上传的基本流程。在HTML表单中,我们可以使用`&lt;input type="file"&gt;`来让用户选择要上传的文件。当用户提交表单时...

    php支持单个或者多个文件上传类.zip

    使用文件上传类库的主要优点在于它可以提供统一的接口,便于代码维护和扩展。此外,它通常包含错误检查、验证(如文件类型、大小限制)、重命名等功能,增强了安全性。 5. **类库的使用**: 在这个特定的类库中,...

    .net文件上传

    为了实现这些功能,开发者可能需要使用第三方库,如jQuery File Upload、FineUploader等,它们提供了断点续传和大文件分块上传的支持。此外,自定义实现也是可行的,需要编写服务器端和客户端的代码来处理分块、合并...

    vue+el_upload实现文件上传的方式.doc

    在本文中,我们将详细介绍如何使用Vue.js和el_upload实现文件上传的方式。 POST请求上传文件 在使用POST请求上传文件时,我们需要将文件组装成form-data类型。这是因为POST请求的body中可以包含文件数据,而form-...

    Struts2实现单个文件多个文件上传与下载-多个拦截器

    本项目主要展示了如何在Struts2框架下实现单个文件和多个文件的上传及下载,并且运用了多个拦截器来增强功能和安全性。 首先,让我们详细了解一下文件上传的过程。在Struts2中,文件上传主要依赖于`struts2-...

    php多文件上传类.zip

    - **处理文件上传**:调用类提供的上传方法,例如`upload()`,并传入用户提交的文件表单字段名。 - **错误处理**:检查上传结果,如果有错误,可以通过返回值或异常来获取错误信息。 - **成功处理**:如果上传...

    文件上传下载工具类单个文件上传多种形式下载文件

    文件上传下载工具类单个文件上传,多种传参形式下载文件

    struts1.2 图片文件上传(单个/动态多个)

    struts1.2 图片文件上传(单个/动态多个) 单个的采用通用Action 需要ActionForm的,而动态多个上传是采用动态代理类(DispatchAction) 希望对大家有用,另JSP在IE测试通过,JS我就不再处理了!

    php文件上传插件(简洁好用的上传插件)

    - **多文件上传**:支持单个文件和批量文件上传,提高用户操作效率。 2. **使用方法** 首先,你需要将压缩包中的PHP文件解压到你的项目目录中。然后,在需要实现文件上传功能的PHP脚本中引入该插件,通过调用其...

    j2ee上传单个文件小测试

    "j2ee上传单个文件小测试"是一个学习和实践此功能的实例。在这个例子中,我们将探讨如何在J2EE环境中实现一个简单的文件上传功能。 首先,文件上传在J2EE中主要依赖于HTTP协议的多部分/形式数据编码(Multipart/...

    thinkPHP删除单个文件

    1. **获取文件路径**:在ThinkPHP中,文件路径通常在控制器或者模型中被保存,可能是通过上传类的返回值获取的。例如,`$fileInfo = $this-&gt;upload-&gt;getFileInfo();`,其中`$fileInfo`包含了文件的完整路径。 2. **...

    PHP设计经典文件上传类

    1. **单个文件上传**:支持单个文件的上传,适用于用户提交单个文件的情况。 2. **多个文件上传**:允许用户一次性上传多个文件,适用于批量上传场景。 3. **自定义保存路径**:开发者可以自由设定上传文件的保存...

    springboot文件上传(支持单个和多个)

    本教程将详细讲解如何在Spring Boot应用中实现单个和多个文件的上传,并处理与系统兼容性和虚拟路径映射相关的问题。 首先,我们需要在Spring Boot项目中引入相关依赖。在`pom.xml`文件中添加`spring-boot-starter-...

    php大文件上传例子及说明

    2. `upload_max_filesize`: 设定单个上传文件的最大大小。 3. `max_execution_time`: 设置脚本最大执行时间,避免因大文件上传导致服务器超时。 确保这些值足够大,以便能处理预期的大文件。例如,可以将它们设置为...

    struts2实现单个和多个文件上传示例代码

    以上就是使用Struts2实现单个和多个文件上传的基本流程。实际开发中,还需要考虑安全性问题,例如限制文件大小、过滤危险文件类型、防止路径遍历攻击等。同时,对于大量文件上传,可能需要考虑异步处理、分片上传等...

    艾恩ASP_文件上传组件anupload

    ### 艾恩ASP_文件上传组件anupload #### 组件概述 艾恩ASP无组件上传组件(anupload)是一款专门为ASP环境设计的文件上传工具。该组件虽然自称为“无组件”,但实际上提供了丰富的功能与灵活性,使得在ASP环境下...

    Spring下的子框架SpringMVC实现单个文件上传功能

    ### SpringMVC 实现单个文件上传功能 #### 一、背景介绍 在现代Web应用开发中,文件上传是一项常见的需求。SpringMVC作为Spring框架的一部分,提供了强大的支持来处理文件上传任务。本文将详细介绍如何在SpringMVC...

    多文件上传类

    在给定的代码中,定义了一个名为`Upload`的类,这个类专门用于实现多文件上传并支持生成缩略图的功能。以下是这个类中包含的关键知识点: 1. **变量定义**:`Upload`类中定义了若干属性来存储上传过程中的关键信息...

    PHP文件上传类

    9. **文件移动**:在验证完文件后,文件上传类会使用`move_uploaded_file()`函数将文件移动到服务器上的指定目录,确保文件上传成功并安全存储。 10. **异常处理与用户体验**:良好的文件上传类会提供友好的错误...

Global site tag (gtag.js) - Google Analytics