上传文件

ThinkPHP3上传文件中遇到的问题

旧街凉风 提交于 2020-04-01 06:35:34
在用ThinkPHP3上传图片的开发过程中遇到如下几个问题: 上传根目录不存在!请尝试手动创建:./Uploads/; 上传的图片,中文名称乱码; 上传文件时会自动生成一个以当前日期命名的文件夹,并将文件保存在其中。 备注:开发环境为Windows下的Xampp 附上问题未解决前的代码: public function addPic() { $uid = I("post.uid", "", "htmlspecialchars"); $upload = new \Think\Upload(); // 实例化上传类 $upload->maxSize = 3145728 ; // 设置附件上传大小 $upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型 $upload->rootPath = "./Uploads/$uid/"; // 设置附件上传根目录 $Upload->saveName = "台标"; // 设置附件上传文件名 // 上传文件 $info = $upload->upload(); if (!$info) { echo json_encode(array( 'status' => -1, 'msg' => $upload->getError() // 上传失败时提示的错误信息 )); } else {

使用ivx实现拖拽上传文件功能的经验总结

你离开我真会死。 提交于 2020-04-01 00:35:30
在实际案例中经常会使用到上传文件的功能,不过普通的上传文件需要用户再去一层一层查找文件的路径并不是十分的方便,今天给大家讲一种使用拖拽放置容器实现上传文件的方法。 1.拖拽放置容器 拖拽放置容器位于拓展组件中的特殊功能容器类,我们可以给它添加事件拖拽放置,此事件的动作中我们能获取一个返回值——拖拽文件,在调试记录中打印出来可以看到里面包含文件的名称、大小和类型等信息。 不过拖拽放置容器只是把文件拖拽进来,上传到服务器还是要使用文件接口组件。文件接口上传文件动作的回调中会收到文件上传到服务器后的一些信息参数。 2.添加数据库字段 第一步我们要做的是设计后台的数据库字段,我们添加以下4个字段,name,type,size和url,分别用于存储上传文件的名称,类型,大小和URL地址。 3.添加服务 下一步我们添加一个对数据库进行提交操作的服务。数据库有四个字段,所以服务添加了对应的四个接收参数,另外还有一个返回参数用于给前台返回数据库提交操作的结果。前台调用服务时返回结果是OK则提交成功,否者显示失败原因。 4.拖拽上传 在前台我们用一个对象数组存储我们上传了哪些文件,对象数组与数据库包含一样的4列,name,type,size和url。拖拽放置容器内,我们添加一些文本组件和图片组件对用户提示和展示上传进度。 然后是拖拽容器的事件,我们将文件拖拽放置到容器区域内时

struts1.2上传文件大小限制

瘦欲@ 提交于 2020-03-27 10:17:05
在用struts1.2做文件上传时,大文件总是上传不了,但又找不到具体原因,其实是因为struts1.2配置文件文件了限制,<controller maxFileSize="2M" inputForward="true" /> ,就是这个限制现在了大小,可以根据实际情况修改 <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"> <struts-config> <form-beans> <form-bean name="uploadForm" type="org.apache.struts.webapp.upload.UpLoadForm" /> </form-beans> <action-mappings> <action path="/upload" forward="/selfile.jsp" /> <!-- Upload Action --> <action path="/uploadsAction" type="org.apache

ant design Upload组件的使用总结

本小妞迷上赌 提交于 2020-03-24 03:15:18
事先说明: upload 所使用"rc-upload"组件在npm是有单独的包,upload对其进一步封装。"rc-upload" 有更多的API选择。 需求 要求限制上传图片的格式、大小、分辨率。 简单介绍 这是一个最简单的upload组件使用 <Upload action="..."> 上传 </Upload> 简单说一下关键几个参数 参数 作用 action 上传的服务器地址,使用默认上传行为必填 beforeUpload 默认上传行为之前的钩子函数,用来限制上传文件 customRequest 自定义上传(本文关键) fileList 已上传列表 本文的关键就在于customRequest、fileList和onRemove三个api。 平常使用 该组件已经将上传文件封装的及其简单 <Upload action="..." onChange={...} beforeUpload={...}> 上传 </Upload> 在所有提供的钩子函数都会接受file参数。它就是用户上传文件的RcFile形式。 主要参数有 { type // 文件格式 size // 文件大小 status // 状态有:uploading done error removed 只有在onChange事件才会变化 response // 服务端响应内容, }

windows下安装GIT,使用GIT GUI 上传文件到github

十年热恋 提交于 2020-03-21 10:23:20
安装 1.从官网 https://git-scm.com/download/win下载安装包 2.打开安装包安装,点击next,接着再点击三次next 3.在下拉菜单中选择已安装的文本编辑器,点击next。 4.默认设置,继续点击几次next,就进入安装页面了 5.安装完成 上传文件 打开GUI 点击 克隆已有版本库 填写 源码位置 设置 项目目录 点击 克隆 自动工作中 完成后会打开一个新窗口,这时点击 远端(remote),ADD 在弹出的窗口中输入 名字 ,和 项目网络位置 完成后就可以上传文件了 设置身份信息 。点击 编辑菜单 ,选择 选项 设置 用户名和Email地址 ,点击右下角的 保存 ,然后就可以上传文件了 复制文件到本地项目目录下,然后点击 重新扫描 ,未缓存的改动里就会出现复制的文件 点击 缓存改动 ,输入 提交信息 ,点击 提交 ,点击 上传 在弹出的窗口下,目标版本库选择设置的 项目名 ,我设置的是 max ,选择它,然后点击上传即可。 上传成功 来源: https://www.cnblogs.com/max-hou/p/9018883.html

HTML5上传文件显示进度

旧时模样 提交于 2020-03-20 18:38:29
3 月,跳不动了?>>> 下面我们使用 Html 5 的新特性file api实现上传文件,并显示上传文件进度百分比。意图是这样的,当选择文件时,显示当前文件信息。这里我们是结合 Asp.net MVC 做为服务端,您也可以是其它的服务端语言。让我们看面这个片断的HTML: @using (Html.BeginForm("Upload", "Home", FormMethod.Post, new { enctype = "multipart/form-data" , id="form1"})) { <div class="row"> <label for="file"> Upload Image:</label> <input type="file" name="fileToUpload" id="fileToUpload" multiple="multiple" onchange="fileSelected();" /> </div> <div id="fileName"> </div> <div id="fileSize"> </div> <div id="fileType"> </div> <div class="row"> <input type="button" onclick="uploadFile()" value="Upload Image" /> </div>

linux初学者-ftp篇(一)

这一生的挚爱 提交于 2020-03-13 03:26:56
linux初学者-ftp篇(一) FTP是文件传输协议,是用于Internet上的控制文件的双向传输。用户可以通过客户机程序从远程主机上下载或者向远程主机上传文件。 linux系统中,如果不了解SELINUX,需要将SELINUX下的enforing改为disabled,否则在进行上传或者下载时会有影响。 1、vsftpd服务的安装 在有yum源的前提下,输入"yum install vsftpd.x86_64 lftp.x86_64 -y"安装vsftpd服务,"vsftpd"是用来发布文件的,"lftp"是用来访问其他客户端的。完成后输入"systemctl start vsftpd"开启vsftpd服务,输入"systemctl enable vsftpd"使得开机启动服务。 可以输入"lftp ip"来验证是否可用。 这样配置完成后,其他用户是无法通过FTP访问这台主机的vsftpd服务的,因为防火墙没有允许此服务。需要进行防火墙配置,输入"firewall-config"进入防火墙图形管理界面,将上方的"Runtime"改为"Permanent",选中"public"下的"ftp",完成后点击"Options"选择其中的"Reload Firewalld"即可。至此其他主机就可以访问这台主机的vsftpd服务了。 2、本机访问的权限限制 可以编辑vsftpd服务的配置文件

iframe仿Ajax上传文件

独自空忆成欢 提交于 2020-03-12 11:45:04
利用iframe框架完成文件上传 前端页面 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>iframe伪装上传文件</title> <script type="text/javascript" src="./jquery-2.0.0.min.js"></script> <script type="text/javascript"> function up(){ var fname='up'+Math.random();//产生随机name值 $('<iframe name="'+fname+'" width="0" height="0" frameBorder="0"></iframe>').appendTo($('body'));//创建iframe标签, $('form:first').attr('target',fname);//将php返回信息引到这个框架中来,不发生页面跳转 $('#xinxi').html('正在上传');//上传过程中的显示 //return false; } </script> </head> <body> <h1>iframe模拟Ajax文件上传</h1> <h2 id="xinxi"></h2> <form action="01.php" method=

2.上传文件

余生颓废 提交于 2020-03-10 11:42:50
上传文件 1. 客户端校验(本地)——JavaScript校验 原理:本地JavaScript进行校验 绕过方法: 1.抓包解包 2.禁用JavaScript 2.服务器端校验——content-type校验 原理:MIME类型检测 绕过方法: 1.修改数据包 gif——image/gif png——image/png jpg——image/jpeg js ——text/javascript htm——text/html html——text/html 2.改文件名后上传抓包后再改回文件名 3.上传正常文件修改文件内容 目的:构造包使content-type 正确 3.服务端校验——后缀名黑名单校验 原理:开发人员禁止了某些后缀名 绕过: 1.大小写绕过,例如:Php、PhP 2.利用黑名单没有的,但是能被中间件解析的后缀名,例如:PHP、php3、php4、php5、pht、php7、phtml、phps Apache的配置文件正则规则 .+\.ph(p[3457]?|t|tml)$ 3.上传Apache的.htaccess 文件 ,与php文件在同一目录 <FilesMatch "php7.jpg">sethandler application/x-httpd-php</FilesMatch> 4.使用00截断:使用bp的hex修改0x00 基于一个组合逻辑漏洞造成的