×

php中通过post请求上传文件

php中通过post请求上传文件的简单介绍

admin admin 发表于2023-03-31 01:24:11 浏览56 评论0

抢沙发发表评论

本文目录一览:

php如何实现文件上传啊

PHP 一般使用 POST 方法上传文件,下面是一个简单的文件上传示例,里面有相关的注释:

up.htm 文件:

----------

html

head

meta http-equiv="Content-Type" content="text/html; charset=gb2312"

titleUp Sample/title

/head

body

form action="up.php" method="post" enctype="multipart/form-data"

!--备注:表单中 enctype="multipart/form-data " 的意思,是设置表单的 MIME 编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了 multipart/form-data ,才能完整的传递文件数据,进行下面的操作,并且 method 要设置为 "post"---php中通过post请求上传文件

File:br /

input type="file" name="upfile" size="30"br /

!--上传框要设置 type="file"--

br /

input type="submit" value="Upload"

/form

/body

/html

----------

up.php 文件

----------

?php

if (is_uploaded_file($_FILES["upfile"]["tmp_name"])){

//如果有文件上传

//is_uploaded_file -- 判断文件是否是通过 HTTP POST 上传的,返回布尔值

//$_FILES['upfilename']['...'],其中的 'upfilename' 即为上传框的 name 属性

//$_FILES['upfile']['tmp_name'] -- 文件被上传后在服务端储存的临时文件名,一般是系统默认

if(!eregi('pdf', $_FILES['upfile']['type'])){

//我们这里假设你要上传一个 pdf 文件

//if(!eregi('pdf', $_FILES['upfile']['type'])) 这个是判断上传文件类型的,是不是 pdf 文件,当然,若是想判断是否是 jpg 文件的话,将 pdf 改成 jpg 就可以了,即 if(!eregi('jpg', $_FILES['upfile']['type']))-php中通过post请求上传文件

//$_FILES['upfile']['type'] 是文件的 MIME 类型,如果浏览器提供此信息的话。例如“image/gif”

echo 'The uploaded file is not an pdf File! Please upload a right file!';

}else{

$filename = $_FILES['upfile']['name'];

//$filename = $_FILES['upfile']['name'],这里是指定上传后的文件名,这里使用的仍是原来的文件名字,($_FILES['upfile']['name'] 是原始文件的名字)-php中通过post请求上传文件

if(move_uploaded_file($_FILES["upfile"]["tmp_name"], dirname(__FILE__)."/upload_file/".$filename)){

//这里就是上传文件

//dirname(__FILE__)."/upload_file/".$file_name -- 指定上传的目标文件,假设你要上传的目标文件夹upload_file 是和当前文件(upload.php)在同一文件夹下-php中通过post请求上传文件

//chmod(dirname(__FILE__)."/upload_file/". $file_name, 0444);

//上面注释掉的是用来改变上传后文件的属性,444 即只有执行和读的权限(看情况加上)

echo $_FILES["upfile"]["name"] . " uploaded succeed!!!";

}else{

echo "Can't upload!!!";

}

}

}else{

echo "File is not selected";

}

//需要注意的:

/*

在你的 up.php 同级目录下建立 upload_file 文件夹,来存放上传的文件

在上传之前要看一下 php 的配置文件:php.ini 中的三处设置

1.是否允许文件上传:( file_uploads = On )

2.文件上传的最大 size:( upload_max_filesize )

3.post 的最大 size ( post_max_size ) 这个大小设置成和 uplod_max_filesize 一样大或比 uplod_max_filesize 大

*/

/*

这只是很简单的一个文件上传的例子,为了帮助理解,只是判断了一下上传文件的类型,还可以使用 if 语句来判断上传文件的大小($_FILES['upfile']['type'])),并进行提示控制等,相关可以查阅 $_FILE['upfile'] 数组的各个值分别代表什么-php中通过post请求上传文件

*/

?

----------

可以看看 php100 里面的视频,其中一节就是介绍文件上传的.  :)

php大神来,post提交文本或者提交文件

前端 index.php

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""

html xmlns=""

head

meta http-equiv="Content-Type" content="text/html; charset=utf-8" /

title无标题文档/title

/head

body

form method="post" enctype="multipart/form-data" action="./manage.php" name=""

input type="file" name="uploadfile" id="uploadfile" 

input type="submit" name="upload" id="upload" value="上传"

form

/body

/html

后端manage.php与index.php同一层

?php

    if(!empty($_FILES["uploadfile"]['tmp_name'])){

        $up_name = $_FILES["uploadfile"];

      $up_size = $up_name["size"];

    $up_type = $up_name["type"];

    $up_path = $up_name['tmp_name'];

    $up_fname = $up_name['name'];

    $exten    = pathinfo($up_fname,PATHINFO_EXTENSION);

    $objname  = date('YmdHis',time());

        $save     = $objname.'.'.$exten;

        $max_size = '314572800';//300M 1024*1024*300

        $up_limit = array("application/msword","text/html","application/pdf","application/vnd.ms-powerpoint","text/plain","application/vnd.ms-excel","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.openxmlformats-officedocument.presentationml.presentation","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");-php中通过post请求上传文件

        if(in_array($up_type,$up_limit)  $up_size = $max_size  $up_size=0) {

            if(move_uploaded_file($up_path,$save)) {

                $msg = '上传成功';

            }

            else {

                $msg = '上传失败';

            }

        }

        else {

            $msg =  '上传类型或大小不符合';

        }

    }

    else {

        $msg =  '无上传文件';

    }

    echo $msg;

?

如何用POST方法上传文件

POST方法上传文件 随着PHP不断的完善,PHP对文件上传的支持也越来越完美,在PHP 4.0.3以前我们只能用copy() 和 is_uploaded_file()方法结合来上传文件,呵呵,其实就是这样我们也会感觉到PHP相对于ASP来说上传文件要方便很多,这也就是本人选择PHP的一点小小的引以为豪的地方。PHP 4.0.3之后PHP又出了一个新函数move_uploaded_file()。上传文件相对来说又简便了不少,只要这一个函数就行(我可不是说上传文件系统只要就一个函数就足够了,大家可不要误解我的意思,我的意思是move_uploaded_file是上传文件的一个核心函数)。 好了,我们看一个三个函数的讲解(资料来自:PHP手册)。 copy(string source,string desk); 将文件从 source 拷贝到 dest。如果成功则返回 TRUE,失败则返回 FALSE。 例: if (!copy($file, $file.'.bak')) { print ("failed to copy $file...br\n"); } is_uploaded_file(string filename) 如果 filename 所给出的文件是通过 HTTP POST 上传的则返回 TRUE。 move_uploaded_file(string filename, string destination) 本函数检查并确保由 filename 指定的文件是合法的上传文件(即通过 PHP 的 HTTP POST 上传机制所上传的)。如果文件合法,则将其移动为由 destination 指定的文件。 由三个函数的解释就可以得到一个结论,move_uploaded_file()是copy()和is_uploaded_file()函数的结合 讲了这么半天大家用起这三个函数可能还会有些生疏,下面给大家两个例子: 首先,建立一个前台页面,命名为index.html Code代码如下: form enctype="multipart/form-data" action="_URL_" method="post" Send this file: input name="filename" type="file" input type="submit" value="Send File" /form 1,下面是关于copy()和is_uploaded_file()方法上传文件的方法(保存为:copy.php,上传文件需要将index.html中的_URL_改为copy.php) Code代码如下: ?php $path="./uploadfiles/"; if(is_uploaded_file($filename)) //特别注意这里,传递给is_uploaded_file的为$filename,可不要传递$_FILES["filename"]["name"] { $file1=$_FILES["filename"]["name"]; //注意这里$_FILES[]方法为PHP4.1.0及以上版本支持,PHP以下的版本要用$HTTP_POST_FILES[]方法 $file2=$path.time().$file1; $flag=1; } if($flag) $result=copy($_FILES['filename']['tmp_name'],$file2); if($result) echo "上传成功!"; ? 2,下面是关于move_uploaded_file()方法上传文件的方法(保存为:move.php,上传文件需要将index.html中的_URL_改为move.php) Code代码如下: ?php $path="./uploadfiles/"; if($_FILES["filename"]["name"]){ $file1=$_FILES["filename"]["name"]; $file2 = $path.time().$file1; $flag=1; } if($flag) $result=move_uploaded_file($_FILES["filename"]["tmp_name"],$file2); //特别注意这里传递给move_uploaded_file的第一个参数为上传到服务器上的临时文件 if($result) echo "上传成功!"; ? 文件上传就讲到这里了,这只是两个小程序,其实要完成文件上传所要的代码可不是这些就能了事的。一般还要有文件大小限制,文件扩展名选取,还有一些其它的安全方案。-php中通过post请求上传文件

php 怎么通过post上传值打开文件

误区分析:

php的服务器端动态脚本,那么,他处理的文件也是在服务器端,而不是客户端!

那么,php要处理你的自己电脑上的文件,那就要先将文件上传,然后php读取上传后的文件缓存附件,即可!

而你的代码,压根就没有上传!

php发送get,post请求的几种方法

POST方法比较适合用于发送一个保密的(比如信用卡号)或者比较大量的数据到服务器,但速度慢。而Get方法会将所要传输的数据附在网址后面,然后一起送达服务器,因此传送的数据量就会受到限制且不安全,但是执行效率却比 Post方法好。具体来说如下:-php中通过post请求上传文件

1、Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“”连接;Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL。-php中通过post请求上传文件

2、Get是不安全的,因为在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一同显示在用户面前。Post的所有操作对用户来说都是不可见的。-php中通过post请求上传文件

3、Get传输的数据量小,这主要是因为受URL长度限制;而Post可以传输大量的数据,所以在上传文件只能使用Post(当然还有一个原因,将在后面的提到)。

4、Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。

5、Get是Form的默认方法。

php 模拟post 上传

你写一个方法把,在php里面可以使用curl库来模拟这样的表单 代码如下:

//curl实现post请求

public function curl_post($url, $data = null){

//创建一个新cURL资源

$curl = curl_init();

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // 跳过证书检查

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); // 从证书中检查SSL加密算法是否存在

//设置URL和相应的选项

curl_setopt($curl, CURLOPT_URL, $url);

if (!empty($data)){

curl_setopt($curl, CURLOPT_POST, 1);

curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

}

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

//执行curl,抓取URL并把它传递给浏览器

$output = curl_exec($curl);

//关闭cURL资源,并且释放系统资源

curl_close($curl);

return $output;

}