九,php中上传文件
1,php网页上传文件大小有限制的,默认最大2M。可以修改php.ini调节大小,upload_max_filesize = 2M。
网页上传使用http协议,上传大文件性能不好;有些公司做一个客户端软件,使用tcp协议,专门上传大文件的。
2,文件系统只识别GB2312,不识别utf-8,因此需要对中文进行转码。iconv("utf-8","GB2312",$fileNew),$fileNew是上传的我那件存放的路径。
3,上传的文件全部放在一个目录下是非常不明智的,可以将每个用户建一个文件夹,每个用户所有资料上传到其自己文件夹。
4,文件上传的实例
(1) 文件上传的页面
<form action="uploadProcess.php" enctype="multipart/form-data" method="post">
<input type="text" name="username"><br/>
上传文件:<input type="file" name="myFile"><br/>
<input type="submit" value="上传">
</form>
(2)处理上传请求
<?php
$username = $_POST['username'];
$myFile = $_POST['myFile']; //上传文件大小限制
if($_FILES['myFile']['size'] > 2 * 1024 * 1024){
echo '上传的文件不能大于2M!';
exit();
}
//上传文件格式限制
if($_FILES['myFile']['type'] != 'image/jpg' && $_FILES['myFile']['type'] != 'image/jpeg'){
echo'上传的文件只能是jpg格式!';
exit();
} $fileTmp = $_FILES['myFile']['tmp_name'];
if(is_uploaded_file($fileTmp)){
$fileNew = $_SERVER['DOCUMENT_ROOT'].$username;
if(!file_exists($fileNew)){ //每个用户上传文件有一个专门文件夹
mkdir($fileNew);
}
//防止上传同名文件,将上传文件改名字,修改后time()+rand(1,1000)+.原文件后缀名
$fileLast = substr($_FILES['myFile']['name'],strrpos($_FILES['myFile']['name'],"."));
$fileNew = $fileNew."/".time().rand(1,1000).$fileLast; if(move_uploaded_file($fileTmp,iconv('utf-8','GB212',$fileNew))){
echo '上传成功!';
}else{
echo '文件从临时目录转移到新目录失败!';
}
}else{
echo '文件没有上传!';
}
九,php中上传文件的更多相关文章
- vue中上传文件之multipart/form-data
首先在项目里用了拦截器的,由于拦截器会将传递的参数转成对象,所以你i提交的时候会发现multipart/form-data或转变成application/json 其次关于input的文件上传是需要一 ...
- 【解决】AWS服务控制台中上传文件失败
使用IE 11,在 AWS Services Console 中不管是 S3 还是 Elastic Beanstalk 的页面中上传页面都会失败,提示信息如下: A problem occurred ...
- 谈谈php中上传文件的处理
这是一个表单的时代... 我们在浏览器中编辑自己的信息,会遇到上传头像:在文库中,我们会上传文档......到处存在“上传”这个词. php是最好的语言(其他语言的程序猿们不要打我...).php在处 ...
- ASP.Net中上传文件的几种方法
在做Web项目时,上传文件是经常会碰到的需求.ASP.Net的WebForm开发模式中,封装了FileUpload控件,可以方便的进行文件上传操作.但有时,你可能不希望使用ASP.Net中的服务器控件 ...
- 现在,以编程方式在 Electron 中上传文件,是非常简单的!
必要的上下文 想尽快熟悉上下文语境的,可以点这里: https://github.com/electron/electron/issues/749 这段讨论,其实本来是讨论如何自动设置 input 标 ...
- element-ui中上传文件upload
<el-upload class="upload-demo" name="targetFile" ref="upload" :with ...
- Mac/Linux/Centos终端中上传文件到Linux云服务器
1.mac上传文件到Linux服务器 scp 文件名 用户名@服务器ip:目标路径 如:scp /Users/test/testFile test@www.linuxidc.com:/test/ ...
- vue中上传文件相同文件名没反应
vue项目中会遇到上传文件的需求,jquery会有一些插件很方便,如果不使用插件网上的方法没有太容易的而且很多是原生JS或者基于jQuery操作dom结构的.那么在vue项目中如何实现呢,还有如何模拟 ...
- Java中上传文件和表单数据提交如何保持数据的一致性?
学生申请学科竞赛活动,表单中有学科竞赛的申报信息和部分附件,需要做到将上传文件和表单数据提交保持一致性. 将上传文件和插入表单数据放到事务汇总去处理,由于表单的数据我们可以控制,但是上传的文档不好控制 ...
随机推荐
- c语言实现常见字符串函数strchr strstr strcmp atoi itoi(字符串换成整数)
好久没有更新博客了,刚刚出炉练练手的程序如下,很简单,没有考虑过多复杂的东西,有好的想法,欢迎指教: 字符查找函数: char *my_strchr(const char *s,int c) { ch ...
- 搭建https+nginx服务器
搭建https+nginx的服务器,主要是安装ngnix和使用openssl生成自签证书,并在nginx中配置的过程 一.安装环境 1.安装opnssl(ssl支持) https://www.op ...
- String和CharSequence
String 是java中的字符串,它继承于CharSequence. String类所包含的API接口非常多.为了便于今后的使用,我对String的API进行了分类,并都给出的演示程序. Strin ...
- 第七章 二叉搜索树 (a)概述
- 数据库帮助类 SqlServerHelp
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...
- shell如何传递变量到另一个脚本文件中
http://www.jbxue.com/article/shell/20707.html本文介绍了shell脚本传递变量到另一个脚本文件中的方法,在脚本中调用另一脚本,即创建了一个子进程,感兴趣的朋 ...
- boost之date_time库
最近开了boost库的学习,就先从日期时间库开始吧,boost的date_time库是一个很强大的时间库,用起来还是挺方便的.以下算是我学习的笔记,我把它记录下来,以后便于我复习和查阅. #inclu ...
- radio单选框
1.写 <!DOCTYPE html> <html> <head> <title></title> <script language= ...
- Java程序设计19——类的加载和反射-Part-B
接下来可以随意提供一个简单的主类,该主类无须编译就可使用上面的CompileClassLoader来运行它. package chapter18; public class Hello { publi ...
- centos搭建本地yum源,
比如将文件夹:/opt/mir/这个文件夹做成本地源: 1.在/etc/yum.repos.d/目录下新建一个.repo文件,比如mir-base.repo,在里面加入如下: [local]name= ...