详解前端文件上传

详解前端文件上传,第1张

首先文件梁毕上传首先想到的发post,当然还有其他的上传协议,我们这里只介绍发post。

post支持四种content-type:

Content-Type 被指定为 application/x-www-form-urlencoded;其次,提交的数据按照 key1=val1&key2=val2 的方式进行编码,key 和 val 都进行了 URL 转码。

首先生成了一个 boundary 用于分割不同的字段,为了避免与正文内容重复,boundary 很长很复杂。然后 Content-Type 里指明了数据是以 mutipart/form-data 来编码,本次请扮派求的 boundary 是什么内容。消息主体里按照字段个数又分为多个结构类似的部分,每部分都是以 --boundary 开始,紧接着内容描述信息,然后是回车,最后是字段具体内容(文本或二进制)。如果传输的是文件,还要包含文件名和文件类型信息。消息主体最后以 --boundary-- 标示结束。

RFC1867

application/json这个Content-Type都比较熟悉,当然也可以把json放到formData中;

RFC4657

参见RFC,也比较常见。

XML-RFC

在HTML中要有一个包含了文件输入框的form元素,表单里元素的name一定要写,最终形厅渣贺成formData时,是以name作为key值

如果直接在form里写action的话,会刷新表单,同步请求。所以用发送异步post请求方式。

你还可以不借助HTML表单,直接向FormData对象中添加一个File对象或者一个Blob对象:

你还可以使用jQuery来发送FormData,但必须要正确的设置相关选项:

MDN:使用FormData

   ——此文章摘自《完全手册PHP网络开发详解》定价 ¥ 特价 ¥ 详细>>//track linktech cn/?m_id=dangdang&a_id=A &l= &l_type = width= height= border= nosave>

    在很多网站中 特别是在论坛系统中 往往存在文件上传的功能 文件上传功能允许用户将本地的文件通过Web页面提交到网站服务器上 但是如果不对用户的上传进行任何限制的话 可能会对服务器造成很大的危害

     一个简单的文件上传页面

    以下代码是一个简单的文件上传页面     <?php     if(isset($_POST[ form ]))     {         $uploadfile = upfiles/ $_FILES[ upfile ][ name ]                                                //上传后文件所在的文件名和路径         move_uploaded_file($_FILES[ upfile ][ tmp_name ] $uploadfile)                    宽祥烂                                             //上传文件         print_r($_FILES)                                       //输出文件信息         die()    }     ?>    <>    <head>    <title>文件上传</title>    <meta equiv= Content Type content= text/charset=gb >    </head>    <H >文件上传</H >    <form enctype= multipart/form data action= method= post >    <input name= upfile type= file >            <input name= form type= hidden value= form ><BR>    <input type= submit value= Submit >    </form>    <body>    </body>    </>     上面的代码将文件上传到网站服务器并存储在upfiles文件夹下 但是 由于上面的文件上传程序没有对上传的文件进行任何检查 用户可以通过该程序上传自行编写的PHP脚本到服务器上并通过浏览器运行 由于PHP脚本潜在的危害性 该漏洞可能会导致服务器的彻底崩溃及数据的丢失      漏洞防护措施     解决上面所述问题的一种方法是通过检查上传文件的类型来限制用户的文件上传 如以下代码所示     <?php     if(isset($_POST[ form ]))     {         if($_FILES[ upfile ][ type ] == image/pjpeg )    //检查文件类型是否为JPEG         {             $uploadfile = upfiles/ $_FILES[ upfile ][ name ]                                                 慎漏     //上传后文件所在的文件名和路径             move_uploaded_file($_FILES[ upfile ][ tmp_name ] $uploadfile)                                                                    //上传文件             print_r($_FILES)        宴衡    die()        }         else         {             die( 上传文件的格式不正确! )        }     }     ?>

lishixinzhi/Article/program/PHP/201311/21477


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12296190.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存