使用PHP和HTML5 FormData实现无刷新文件上传教程

无刷新文件上传是一个常见而又有点复杂的问题,常见的解决方案是构造iframe方式实现。在HTML5中提供了一个FormData对象API,通过FormData可以方便地构造一个表单请求,并通过XMLHttpRequest来发送。通过FormData对象发送文件也是可以的,如此则无刷新上传就变的非常简单了。那么FormData怎么使用呢?下面phpstudy对此进行简单的介绍。1.构造FormData对象想得到一个FormData对象,很简单:varfd=newFormData();FormData对象只提供了一个方法append,用于向对象中添加表单请求参数。在当前主流浏览器中,可通过如下两种方式获取或修改FormData。方法一:创建一个空的FormData对象,然后再用append方法逐个添加键值对。示例:varfd=newFormData();fd.append("name","phpstudy");fd.append("blog","http://phpstudy.net");fd.append("file",document.getElementById("file"));这...

在php中使用jquery uploadify进行多图片上传

jqueryuploadify是一款Ajax风格的批量图片上传插件,在PHP使用jqueryuploadify很方便,请按照本文介绍的方法和步骤,为你的PHP程序增加jqueryuploadify插件的批量上传图片功能。本文是以dilicms为基础,为其增加图片上传功能。1.增加数据表dili_fieldtypes新字段:k=>image,V=>图片上传区域(VACHAR);2.修改application/libraries/dili/Field_behavior.php,在switch中增加如下代码:case'image':$field=array('type'=>'VARCHAR','constraint'=>255,'default'=>'');break;3.修改application/libraries/dili/Form.php并且增加如下代码:function_image($fileld,$default){//$type='type=hidden';//$width=($field['width']?$field['width']:'57...

PHP文件上传和文件操作案例

<?php/**文件配置变量$dirname是目录名称*/session_start();$dirname='upload';$fileClass=newfileClass($dirname);$fileClass->fileCMM();/*文件重命名操作*/$fileClass->fileDelete();/*文件删除操作*/?><!DOCTYPEhtml><html><head><matecharset="utf-8"/><title>php文件上传操作</title><style>body{font-size:150%;margin:0px;padding:0px;background-color:#FFEBCD;}.div-top-box{border:solid1px#008080;width:99.8%;height:100%;background-color:#008080;margin-bottom:10px;}h1{text-align:center;}inpu...

PHP文件上传主要代码讲解

导读:在php开发过程中,文件上传也经常用到,这里简单介绍下。在php开发过程中,文件上传也经常用到,这里简单介绍下。代码如下:<?php   if($_FILES['myfile']['name']!=''){if($_FILES['myfile']['error']> 0){echo "错误状态:".$_FILES['myfile']['error'];} else {move_uploaded_file($_FILES['myfile']['tmp_name'],"uploads/".$FILES['myfile']['name']);echo "<script>alert(上传成功!);</script>";}} else{echo "<script>alert(请上传文件!);</script>";}?>说明:在解释这篇代码前,我们有必要了解以下知识。$_FILES['myfile']['name']是指被上传文...

【荐】PHP上传文件大小限制大全

在php.ini里面可以设置最大上传文件大小解决方法:第一:在php.ini里面查看如下行:upload_max_filesize=8Mpost_max_size=10Mmemory_limit=20M 另外要确认上传的<form>里类似下面的这行<inputtype="hidden"name="MAX_FILE_SIZE"value="500000"> 第二:如果是apache2需要修改/etc/httpd/conf.d/php.conf 中的LimitRequestBody524288将524288(=512×1024)改大,比如5M(=5×1024×1024) 另外:PHP的最大执行时间也是可能影响的因素。也可通过php文件临时设置,代码如下:<?phpini_set('max_execution_time','600');ini_set('post_max_size','100M');//好像设置不成功,不起作用ini_set('upload_max_filesize','200M');//好像设置不成功,不...

PHP上传(单个)文件示例

通过PHP,可以把文件上传到服务器。创建一个文件上传表单允许用户从表单上传文件是非常有用的。请看下面这个供上传文件的HTML表单:<html><body><formaction="upload_file.php"method="post"enctype="multipart/form-data"><labelfor="attach_file">Filename:</label><inputtype="file"name="attach_file"id="attach_file_id"/><br/><inputtype="submit"name="submit"value="Submit"/></form></body></html> 请留意如下有关此表单的信息:<form>标签的enctype属性规定了在提交表单时要使用哪种内容类型。在表单需要二进制数据时,比如文件内容,请使用"multipart/form-data"。<inp...

PHP同时上传“多个”文件示例,并格式化$_FILES数组信息

方法1:在html表单,放置多个文件选择框,使用数组名作为组件的名字,如下:<formaction="upload.php"method="post"enctype="multipart/form-data"><inputtype="file"name="upfile[]"/><inputtype="file"name="upfile[]"/><inputtype="file"name="upfile_2[]"/><inputtype="file"name="upfile_2[]"/></form> 在服务器端我们可以测试一下提交的信息<?phpprint_r($_FILES);?> 输出结果:Array([upfile]=>Array([name]=>Array([0]=>C函数速查.chm[1]=>JDK_API_1_6中文帮助.CHM)[type]=>Array([0]=>application/octet-stream[1]=>app...

让窗体接受拖放, 并获取拖过来的文件信息

原理分析:这需要用到ShellAPI单元的两个函数:DragAcceptFiles、DragQueryFile;用DragAcceptFiles(窗口句柄,True);以让窗口能够接受拖放;然后就等待WM_DROPFILES消息,并用DragQueryFile函数处理消息参数,从而获取信息.--------------------------------------------------------------------------------代码文件:--------------------------------------------------------------------------------unitUnit1;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls;typeTForm1=class(TForm)Memo1:TMemo;procedureFormCreate(Sender:TObject);protectedpr...

layui上传写法(自用)

自写自用,做记录用,备注以后再完善。写的比较low <div><divclass="layui-rowlayui-col-space15"><divclass="layui-col-md12"><divclass="layui-card"><formclass="layui-form"action=""><divclass="layui-form-item"><divclass="layui-inline"><labelclass="layui-form-label">新增附件</label><divclass="layui-input-inline"><inputtype="text"name="name"id="name_val"autocomplete="off"class="layui-input"placeholder="请输入附件名,便于查找"><inputtype="hidden"name="accessory-url"id=...
代码星球 代码星球·2021-01-09

使用vue-resource,get、post、jsonp都报未定义的错误。

1<scriptsrc="node_modules/vue-resource/dist/vue-resource.js"></script>2<scriptsrc="node_modules/vue/dist/vue.js"></script>错误原因:应当先导入vue.js再导入vue-resource.js...

postgresql数据库中对重复数据的处理

我们在使用postgresql数据库的时候,如果一张数据表在未做任何约束的情况下,很可能会出现几条完全一样的数据,即重复数据。如下图所示:那么如果我们要删除其中的2条该怎么办呢?第一种我们可以清空表的内容,再使用INSERTINTO语句再将内容插入到表中。此方法可行,但对于专业人士来讲,并不推荐第二种我们可以结合pg数据库中的ctid(和物理存储有关,指的是一条记录位于哪个数据块的哪个位移上面)来进行删除。这里我们使用依然先使用SELECT语句进行查询。 这样我们就可以使用唯一标识的ctid对重复数据进行删除操作,使用以下两种方式都可以删除tb_5201351表中2条数据。DELETEFROMtb_5201351WHEREctidin('(0,2)','(0,3)');上面的方法原理是我们依次手工输入要删除指定ctid对应的数据,如果数据较多的话,我们还可以使用如下语句进行删除。DELETEFROMtb_5201351WHEREctidnotin(selectmin(ctid)fromtb_5201351);执行后的结果如下图所示: ...

postMessage 跨域

安·记 2014-09-07 2099 阅读跨域 存储 localStorageHTML5的postMessage为解决跨域页面通信提供了一套可控的机制,而localStorage则提供了易用简洁的本地存储方案?这两者结合起来,能否实现跨域本地存储呢?答案是可以的。假设有a.com和b.com两个页面。我们想通过a页面去修改b页面的本地数据。我们需要做如下步奏:在a页面创建一个iframe,嵌入b页面a页面通过postMessage传递指定格式的消息给b页面b页面解析a页面传递过来的消息内容,调用localStorageAPI操作本地数据b页面包装localStorage的操作结果,并通过postMessage传递给a页面a页面解析b页面传递回来的消息内容,得到localStorage的操作结果整个过程如下图:OK,清楚了整个过程,我们就可以封装出相应的组件:CSClient.js和csHub.js,来完成这个过程,下面我们来简单实现一下。先来看CSClient.js,作用于a页面,用于创建跨域存储实例,它提供了get、s...
代码星球 代码星球·2020-12-30

关于 百度 Ueditor 上传图片时 打开文件夹的延迟问题

在使用ueditor开发时,作为一个web文本编辑器使用时。当点击上传图片时,文件夹要延迟好久才能打开。  解决:  针对多图片上传,将/ueditor/dialogs/image/image.js文件下的以下代码   accept:{title:'Images',extensions:acceptExtensions,mimeTypes:'image/*'},改成:  accept:{title:'Images',extensions:acceptExtensions,mimeTypes:'image/gif,image/jpeg,image/png,image/jpg,image/bmp'},针对单图片上传,将/ueditor/ueditor.all.jsor/ueditor.all.min.js(根据自己引用的文件来确定)文件下的以下代码accept="image/*"改成:accept="image/gif,image/jpeg,image/png,image/jpg,image/bmp"当然可接受的格式可以根据需要修改,如果不希望上传gif则改为: accept="...

如果获取 上传域的文件名

<input type="file" name="file" id="file" class="input_text80"></input>js:方法一:字符串截取var file = $("#file").val();var fileName = getFileName(file); function getFileName(o){    var pos=o.lastIndexOf("\");    return o.substring(pos+1);  } 方法二:正则表达式var file = $("#file").val();var strFileName=file.replace(/^.+?\([^\]+?)(.[^.\]*?)?$/gi,"$1"); &n...

图片上传与后台交互

HTML:<divclass="row"><divclass="qsc_imgcol-md-4"><pclass="qsc_img_del"style="display:none;"><iclass="fafa-close"onclick="del_img(this)"></i></p></div><inputtype='file'onchange='previewImage(this)'style='display:none;'class='previewImg'>   <inputtype='hidde'value='id'><divclass='previewcol-md-8'><aclass="btnqsc_img_btn"onclick="img_self(this)">上传</a><aclass="qsc_img_example"data-example="qsc_example_business"href="javascri...
代码星球 代码星球·2020-12-30
首页上一页...3132333435...下一页尾页