HTML表单的POST上传方式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTML表单的POST上传方式相关的知识,希望对你有一定的参考价值。

POST上传方式说是:将数据放置在html文件头中发送给服务器。
这个文件头指的是什么?是不是就是标签<head></head>之间的内容

参考技术A 是<form></form>之间的内容,例如:<form action="/search" name="search-form" method="post" id="search-form" class="search-form">,其中method就是上传的方式。 参考技术B 数据不是放在html文件头,而是放在http请求头里的。
http是种协议。如果有兴趣可以了解一下,但是跟你写网页什么的没什么很重要的关系追问

是不是就是在OSI的某个层加包头的时候,加在包头里面?

追答

算是吧。
http://blog.csdn.net/darxin/article/details/4944225

本回答被提问者采纳

文件上传

文件上传分为两个步骤

1客户端用户上传;

a)需要一个表单域,用来注入要上传的文件,

<input type="file" name="file" />

b)用户选择所需要上传的文件

c)用户点击,将文件发送给服务器

 

2服务器接收

form表单使用POST提交方式。

*注意:GET,POST不能提交二进制文件,但是POST提交增加一个属性便可以完成。

<form action="file.php" method="POST"  enctype="multipart/form-data">

 

html部分:

html部分:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>文件上传</title>
</head>
<body>
    <form action="file.php" method="POST"  enctype="multipart/form-data">
        <input type="file" name="file" />
        <input type="submit" value="提交"/>
    </form>
</body>

 

php部分

var_dump($_FILES) 时发现得到的是一个数组

array
  ‘file‘ => 
    array
      ‘name‘ => string ‘4.jpg‘ (length=5)
      ‘type‘ => string ‘image/jpeg‘ (length=10)
      ‘tmp_name‘ => string ‘F:\wamp\tmp\php904D.tmp‘ (length=23)
      ‘error‘ => int 0
      ‘size‘ => int 273665

                  

此时要进行数据验证

a)根据二维数组找到error点;

 

switch($_FILES[‘file‘][‘error‘]){
    case ‘0‘:
        echo "上传成功";
        break;
    case ‘1‘:
    case ‘2‘:
        header(‘Refresh:3;url=file.html‘);
        echo "文件大小超过服务器限制";
        break;
    case ‘3‘:
        header(‘Refresh:3;url=file.html‘);
        echo "文件只有部分上传成功";
        break;
    case ‘4‘:
        header(‘Refresh:3;url=file.html‘);
        echo "未选中文件,请重新选择文件并提交";
        break;
    default:
        echo "文件上传失败";
}


 

b)文件上传成功后,放到了指定的临时目录中,此时需要更改到期待的文件中,

php有一个函数可以完成,move_uploaded_file()

eg:

move_uploaded_file($_FILES[‘file‘][‘tmp_name‘], ‘./cy1/‘ . $_FILES[‘file‘][‘name‘]);

 

注:tmp_name,文件上传到服务器的临时目录,

‘name‘,文件在客户端本地的文件名字。

 

以上是关于HTML表单的POST上传方式的主要内容,如果未能解决你的问题,请参考以下文章

html中表单使用post方式提交,为啥没有值

HTML 表单构建/Django request.POST 帮助

java模拟post方式提交表单实现图片上传

form表单提交上传图片

通过 ajax POST 上传图片而不使用 HTML 表单

文件上传