如何使用PHP上传文件,上传图片,php上传教程,php表单文件上传教程

使用PHP进行文件上传,主要使用到表单功能和PHP内置的$_FILES函数功能。接下来我们看如何实现PHP上传功能。例子效果图,此例子是在Mac下进行调试成功的。

PHP上传图片文件的功能代码如下:

<html>
<head>
    <meta charset="utf-8">
    <title>Upload File Example</title>
    <style>
        body{
            width:500px;
            margin:20px auto;
            line-height:25px;
        }
        img{
            display:block;
            max-width:500px;
        }
        h1{
            text-align:center;
        }
        #uploadfile{
            background-color:#eee;
            text-align:center;
            width:500px;
            margin:0 auto;
        }
        form{
            margin:0px;
            padding:0px;
        }
        #uploadfile .input1{
            display:block;
            width:500px;
            text-align:center;
            margin:0 auto;
        }
        #uploadfile .input2,.input3{
            width:100px;
            margin:5px 20px;
        }
    </style>
</head>
<body>
    <h1>Upload File</h1>
    <div id="uploadfile">
        <form enctype="multipart/form-data" action="<?php echo $_SERVER[‘PHP_SELF‘];?>" method="post">
            <input class="input1" name="upfile" type="file">
            <input class="input2" type="submit" value="确认提交">
            <input class="input3" type="reset" value="重置">
        </form>
    </div>
    <?php
        if($_FILES["upfile"]["name"]==NULL){
            echo "No file choice!";
        }else{
            $filepath="/Library/WebServer/Documents/";
            $tmp_name=$_FILES["upfile"]["tmp_name"];
            $filename=$filepath.$_FILES["upfile"]["name"];
            echo "<br>"."\$_FILES[‘upfile‘][‘name‘]:".$_FILES["upfile"]["name"];
            echo "<br>"."\$_FILES[‘upfile‘][‘size‘]:".GetSize($_FILES["upfile"]["size"]);
            echo "<br>"."\$_FILES[‘upfile‘][‘type‘]:".$_FILES["upfile"]["type"];
            echo "<br>"."\$_FILES[‘upfile‘][‘tmp_name‘]:".$_FILES["upfile"]["tmp_name"];
            if(move_uploaded_file($tmp_name,$filename)){
                echo "<br>"."已上传至目录:".$filename;
                if(in_array($_FILES["upfile"]["type"],array("image/png","image/jpg","image/bmp"))){
                    echo "<br>"."<img src=‘/".$_FILES["upfile"]["name"]."‘ />";
                }else{

                }
            }else{
                echo "<br>"."Upload faild!";
            }
        }
//      将文件大小转成相应计量单位
        function GetSize($tmp){
            $arr = array("B","KB","MB","GB","TB","PB");
            $pos = 0;
            if(!is_integer($tmp))
                return -1;
            while($tmp>1024 and count($arr)>$pos){
                $tmp = $tmp / 1024.0;
                $pos++;
            }
            $tmp = sprintf("%.2f",$tmp);
            return $tmp.$arr[$pos];
        }
    ?>
</body>
</html>

使用表单的action可以选点表单提交对象,象本文中的例子是将表单提交给自己进行处理。

method可以选择post或get文件进行提交。

时间: 2024-11-03 21:05:50

如何使用PHP上传文件,上传图片,php上传教程,php表单文件上传教程的相关文章

Flask教程 —— Web表单(上)

第二章中介绍的request对象公开了所有客户端发送的请求信息.特别是request.form可以访问POST请求提交的表单数据. 尽管Flask的request对象提供的支持足以处理web表单,但依然有许多任务会变得单调且重复.表单的HTML代码生成和验证提交的表单数据就是两个很好的例子. Flask-WTF扩展使得处理web表单能获得更愉快的体验.该扩展是一个封装了与框架无关的WTForms包的Flask集成. Flask-WTF和它的依赖集可以通过pip来安装: (venv) $ pip

利用socket模拟http的混合表单上传(在一个请求中提交表单并上传多个文件)

在很多企业级应用中,我们都没法直接通过开发语言sdk包封装的http工具来模拟http复合表单(multipart/form-data),特别是在跨语言跨平台的编程过程中,其实实现方案并不复杂,只要你了解了http协议中复合表单的报文结构就很简单了: httpheader ------时间戳------ 表单参数1 ------时间戳------ 表单参数2 ------时间戳------ 文件1的描述+二进制信息 ------时间戳------ 文件2的描述+二进制信息 下面我们进一步以一段c

使用HTML的表单form上传文件,需要考虑的几个问题

应用系统中经常需要有文件上传功能,一般的做法都是使用HTML的<form>和<input type="file">,或者使用第三方文件上传组件,如swfupload和uploadify.我们都知道如果向服务器提交数据,一般来说都是使用POST请求,请求数据会放在请求体中,以key1=value1&key2=value2的形式.这样的报文,服务器是很容易解析的.如果是上传文件,通过httpwatch抓包工具,我们可以发现:文件的内容也是放在post请求体中

表单文件上传与文件下载

一.简介 使用form表单进行需要为form添加enctype="multipart/form-data" 属性,除此之外还需要将表单的提交方法改成post,如下 method="post". 二.示例 1.表单文件上传 网页代码如下: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 </head> 5 <body> 6 <form action="${pageC

CURL模拟表单post提交及相关常用参数的使用(包括提交表单同时上传文件)

转载自:https://blog.csdn.net/freedomwjx/article/details/43278157 一. 首先,最简单的情况是我们只需要提交一个不带文件上传的表单,这种情况下,只需要在curl中使用--data(注意是--不是-)或者它的缩写-d即可. [plain] view plain copy curl -d "key=value&key=value" "url" 或者 [plain] view plain copy curl 

Ajax(form表单文件上传、请求头之contentType、Ajax传递json数据)

form表单文件上传 上菜 file_put.html <form action="" method="post" enctype="multipart/form-data"> {# 这里必须要请求头格式才能把上传文件的对象传过去 enctype="multipart/form-data"#} 姓名 <input type="text" name="user">

混合表单文件上传到数据库(基于TOMCAT)

在实际的开发中在实现文件上传的同时肯定还有其他信息需要保存到数据库,就像混合表单在上传完毕之后需要将提交的基本信息插入数据库. 在这个demo中需要用到这个架包来帮助实现 1.定义一个公共类实现文件上传(BaseServlet) 上传是一个公共的操作,可能在很多个servlet中都要涉及到上传,比如在Empservlet中要上传雇员的照片,在ManagerServlet中要上传管理员的照片,此时就需要将上传的操作定义到一个公共父类. package com.sxt.mvcpro.servlet;

Node实现简单的表单+图片上传+路由

Node实现一个表单处理+图片上传功能,不是用express 1.使用formidable模块用于上传文件(图片)的处理.注意form表单要使用multipart/form-data属性. 2.使用chunk分段接收,原因是当接受了一小段,可能就给别人服务了.防止一个过大的表单阻塞了整个进程 3.上传上去的图片使用formidable自定义路径,用fs改名. 4.实现简单的路由. var http = require("http"); var querystring = require

AJAX提交表单,上传出错的国际化信息无法显示在jsp页面上

为上传体添加进度条,将form表单submit按钮提交,改为了使用ajax对表单的数据进行提交. 问题是:使用ajax对表单进行提交,之前可行的国际化上传错误信息显示不了了. 打开chrome的开发者工具结果发现,ajax访问的uploadFile.action,结果返回的一个当前jsp页面的信息 奇怪的是返回的jsp页面信息是有国际化错误信息的,但是当前的jsp页面却没有: 分析:我想是因为当前页面使用的是ajax对表单进行提交的,在xml中配置中,上传如果出错的话,则会再返回当前页面,由ac