PHP 带参数文件上传

本篇文章主要介绍使用 PHP 上传文件

博主博客

文件目录

upload.php

<?php
/**
 * User: aaa539687357@vip.qq.com
 * Date: 2016/6/11
 * Time: 0:33
 */
header("Content-type: text/html; charset=utf-8");
define("NL", "<br />\n");

$path = "upload/";

// 接收 GET 参数中的 tokenId
if (!empty($_GET) && isset($_GET["tokenId"])) {
    printf("tokenId=%s%s", $_GET["tokenId"], NL);
}
// 接收 POST 参数中的 data
if (!empty($_POST) && isset($_POST["data"])) {
    printf("data=%s%s", $_POST["data"], NL);
}


// 服务器限制文件大小, 所以接收到大文件有可能为空
if (!isset($_FILES["uploadFile"])) {
    die("文件为空!");
}

if ($_FILES["uploadFile"]["error"] > 0) {
    die("错误代码:" . $_FILES["uploadFile"]["error"] . NL);
} else {
    printf("文件名:\t%s%s文件类型:\t%s%s文件大小:\t%sKB%s临时文件绝对路径:\t%s%s",
        $_FILES["uploadFile"]["name"], NL,
        $_FILES["uploadFile"]["type"], NL,
        ($_FILES["uploadFile"]["size"] / 1024), NL,
        $_FILES["uploadFile"]["tmp_name"], NL);
}
// 上传限制(image/jpeg 为jpg图片, text/plain为txt文本, 还能使用size限制大小)
if (($_FILES["uploadFile"]["type"] == "image/jpeg")
|| $_FILES["uploadFile"]["type"] == "text/plain") {
    if (file_exists($path . $_FILES["uploadFile"]["name"])) {
        die($_FILES["uploadFile"]["name"] . "已经存在!");
    } else {
        // 如果 upload 文件夹不存在就创建
        if (!file_exists($path)) mkdir($path);
        // 把临时文件移到该文件目录, 并且重命名, 使用iconv防止上传中文文件出现中文乱码
        move_uploaded_file($_FILES["uploadFile"]["tmp_name"], $path . iconv("UTF-8", "gb2312", $_FILES["uploadFile"]["name"]));
        printf("%s上传完成!", $_FILES["uploadFile"]["name"]);
    }
} else {
    die("不支持上传该文件!");
}

up.html

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>上传文件</title>
</head>
<body>
    <form action="upload.php?tokenId=abc" method="post" enctype="multipart/form-data" >
        <input type="file" name="uploadFile" id="uploadFile" />
        <input type="text" name="data" id="data" value="This is data!" />
        <input type="submit" value="提交" />
    </form>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nukix

如果觉得对你有帮助,欢迎打赏!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值