怎么用php文件上传功能,并可以同时进行数据提交,请问代码如何写??php
// $_FILES["file"]["type"] 其中["file"] html中标签后台上传数据php代码的name
if ((($_FILES["file"]["type"] == "image/gif") //检查上传后台上传数据php代码的文件类型为gif
|| ($_FILES["file"]["type"] == "image/jpeg")//检查上传后台上传数据php代码的文件类型为jpg
|| ($_FILES["file"]["type"] == "image/pjpeg"))//检查上传后台上传数据php代码的文件类型为jpeg
($_FILES["file"]["size"]20000))//检查上传的文件大小
{
if ($_FILES["file"]["error"]0)//判断是否为错误
{
echo "Return Code: " . $_FILES["file"]["error"] . "br /";//如果错误则输出错误信息
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "br /"; //输出文件名称
echo "Type: " . $_FILES["file"]["type"] . "br /";//输出文件类型
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kbbr /";//输出文件大小
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "br /";//输出临时文件名称
if (file_exists("upload/" . $_FILES["file"]["name"]))//判断上传文件是否存在upload文件夹里
{
echo $_FILES["file"]["name"] . " already exists. ";//如果存在则提示信息
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);//如果不存在则拷贝临时文件到upload文件夹
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];//输出上传文件路径 文件名称
}
}
}
else
{
echo "Invalid file";//错误信息
}
?
如何实现文件上传功能php后端后端的主要逻辑顺序基本就是下面的流程
获取文件上传数组eg. $file = $_FILES['file'];
获取实际文件名eg. $old = $file['name'];
获取扩展名eg. $ext = strrchr($old,'.');
定义一个新文件名(存储的时候不用源文件名后台上传数据php代码,主要是因为可能出现中文以及文件名重复
问题)eg. $new = time().uniqid();
项目文件系统根目录$file_path = '/var/www/ccc/';
定义一个存储路径(相对系统根目录)eg. $storage = "file/";
移动文件eg. move_uploaded_file($file['tmp_file'],$file_path.$storage.$new.$ext)
数据库存储后台上传数据php代码你需要记录的信息,比如原文件名、上传时间、路径,后台上传数据php代码你可以存储$storage这个相对路径,因为以后访问,可能需要使用web域名 。不过现在一般也不会让人直接访问静态资源,那么权限控制就是另外一回事了
主要的流程就是这些,当然作为项目使用这些还是不够的,还需要异常处理,毕竟这样的流程还是太简陋
PHP如何编写FTP上传文件 前后台代码你上传的时候打印$_FILES这个数组就知道文件名和路径了,上传的时候服务器把文件流作为个临时文件存放在服务器的tmp目录,你要上传到具体目录就要从这个tmp目录复制出临时文件写入你要的目录 。后台ftp要不要写类具体看自己是要面向过程的还是面向对象的 。
求实现php文件上传代码PHP上传文件非常简单,你需要一个上传的HTML文件(FORM),一个保存文件的PHP文件(保存),一个查询上传文件清单的工具 。
真正实现完整功能的上传和管理需要使用数据库,我的网站俱乐部里面上传文件一开放很快就传了几万个文件 。
最简单的方法不用数据库,可以用一个PHP文件实现,这个文件列出指定目录下的所有文件 , 然后提供一个上传的FORM , 最后检测是否提交了FORM数据 , 是就保存文件到指定位置 。
PHP手册第39章有关于处理这些问题的说明,我复制粘贴如下:
上一页V. 特点 下一页
--------------------------------------------------------------------------------
第 39 章 文件上传处理
目录
POST 方法上传
错误信息说明
常见缺陷
上传多个文件
对 PUT 方法的支持
POST 方法上传
本特性可以使用户上传文本和二进制文件 。用 PHP 的认证和文件操作函数,可以完全控制允许哪些人上传以及文件上传后怎样处理 。
PHP 能够接受任何来自符合 RFC-1867 标准的浏览器(包括 Netscape Navigator 3 及更高版本,打了补丁的 Microsoft Internet Explorer 3 或者更高版本)上传的文件 。
相关的设置: 请参阅 php.ini 的 file_uploads,upload_max_filesize,upload_tmp_dirpost_max_size 以及 max_input_time 设置选项 。
请注意 PHP 也支持 PUT 方法的文件上传 , Netscape Composer 和 W3C 的 Amaya 客户端使用这种方法 。请参阅对 PUT 方法的支持以获取更多信息 。
例 39.1. 文件上传表单
可以如下建立一个特殊的表单来支持文件上传:
!-- The data encoding type, enctype, MUST be specified as below --
form enctype="multipart/form-data" action="__URL__" method="POST"
!-- MAX_FILE_SIZE must precede the file input field --
input type="hidden" name="MAX_FILE_SIZE" value="https://www.04ip.com/post/30000" /
!-- Name of input element determines name in $_FILES array --
Send this file: input name="userfile" type="file" /
input type="submit" value="https://www.04ip.com/post/Send File" /
/form
以上范例中的 __URL__ 应该被换掉,指向一个真实的 PHP 文件 。
MAX_FILE_SIZE 隐藏字段(单位为字节)必须放在文件输入字段之前,其值为接收文件的最大尺寸 。这是对浏览器的一个建议,PHP 也会检查此项 。在浏览器端可以简单绕过此设置,因此不要指望用此特性来阻挡大文件 。实际上,PHP 设置中的上传文件最大值是不会失效的 。但是最好还是在表单中加上此项目,因为它可以避免用户在花时间等待上传大文件之后才发现文件过大上传失败的麻烦 。
注意: 要确保文件上传表单的属性是 enctype="multipart/form-data",否则文件上传不了 。
全局变量 $_FILES 自 PHP 4.1.0 起存在(在更早的版本中用 $HTTP_POST_FILES 替代) 。此数组包含有所有上传的文件信息 。
以上范例中 $_FILES 数组的内容如下所示 。我们假设文件上传字段的名称如上例所示,为 userfile 。名称可随意命名 。
$_FILES['userfile']['name']
客户端机器文件的原名称 。
$_FILES['userfile']['type']
文件的 MIME 类型,如果浏览器提供此信息的话 。一个例子是“image/gif” 。不过此 MIME 类型在 PHP 端并不检查,因此不要想当然认为有这个值 。
$_FILES['userfile']['size']
已上传文件的大小 , 单位为字节 。
$_FILES['userfile']['tmp_name']
文件被上传后在服务端储存的临时文件名 。
$_FILES['userfile']['error']
和该文件上传相关的错误代码 。此项目是在 PHP 4.2.0 版本中增加的 。
文件被上传后,默认地会被储存到服务端的默认临时目录中,除非 php.ini 中的 upload_tmp_dir 设置为其它的路径 。服务端的默认临时目录可以通过更改 PHP 运行环境的环境变量 TMPDIR 来重新设置,但是在 PHP 脚本内部通过运行 putenv() 函数来设置是不起作用的 。该环境变量也可以用来确认其它的操作也是在上传的文件上进行的 。
例 39.2. 使文件上传生效
请查阅函数 is_uploaded_file() 和 move_uploaded_file() 以获取进一步的信息 。以下范例处理由表单提供的文件上传 。
?php
// In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead
// of $_FILES.
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
echo 'pre';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "File is valid, and was successfully uploaded.\n";
} else {
echo "Possible file upload attack!\n";
}
echo 'Here is some more debugging info:';
print_r($_FILES);
print "/pre";
?
接受上传文件的 PHP 脚本为了决定接下来要对该文件进行哪些操作,应该实现任何逻辑上必要的检查 。例如可以用 $_FILES['userfile']['size'] 变量来排除过大或过小的文件,也可以通过 $_FILES['userfile']['type'] 变量来排除文件类型和某种标准不相符合的文件 , 但只把这个当作一系列检查中的第一步,因为此值完全由客户端控制而在 PHP 端并不检查 。自 PHP 4.2.0 起,还可以通过 $_FILES['userfile']['error'] 变量来根据不同的错误代码来计划下一步如何处理 。不管怎样,要么将该文件从临时目录中删除,要么将其移动到其它的地方 。
如果表单中没有选择上传的文件,则 PHP 变量 $_FILES['userfile']['size'] 的值将为 0,$_FILES['userfile']['tmp_name'] 将为空 。
如果该文件没有被移动到其它地方也没有被改名,则该文件将在表单请求结束时被删除 。
例 39.3. 上传一组文件
PHP 的 HTML 数组特性甚至支持文件类型 。
form action="" method="post" enctype="multipart/form-data"
pPictures:
input type="file" name="pictures[]" /
input type="file" name="pictures[]" /
input type="file" name="pictures[]" /
input type="submit" value="https://www.04ip.com/post/Send" /
/p
/form
?php
foreach ($_FILES["pictures"]["error"] as $key = $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["pictures"]["tmp_name"][$key];
$name = $_FILES["pictures"]["name"][$key];
move_uploaded_file($tmp_name, "data/$name");
}
}
?
--------------------------------------------------------------------------------
上一页上一级 下一页
38. 处理 XForms起始页 错误信息说明
怎样用PHP实现文件上传创建一个文件上传表单
允许用户从表单上传文件是非常有用的 。
请看下面这个供上传文件的 HTML 表单:
html
body
form action="upload_file.php" method="post"
enctype="multipart/form-data"
label for="file"Filename:/label
input type="file" name="file" id="file" /
br /
input type="submit" name="submit" value="https://www.04ip.com/post/Submit" /
/form
/body
/html
请留意如下有关此表单的信息:
form 标签的 enctype 属性规定了在提交表单时要使用哪种内容类型 。在表单需要二进制数据时 , 比如文件内容 , 请使用 "multipart/form-data" 。
input 标签的 type="file" 属性规定了应该把输入作为文件来处理 。举例来说,当在浏览器中预览时,会看到输入框旁边有一个浏览按钮 。
注释:允许用户上传文件是一个巨大的安全风险 。请仅仅允许可信的用户执行文件上传操作 。
创建上传脚本
"upload_file.php" 文件含有供上传文件的代码:
?php
if ($_FILES["file"]["error"]0)
{
echo "Error: " . $_FILES["file"]["error"] . "br /";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "br /";
echo "Type: " . $_FILES["file"]["type"] . "br /";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kbbr /";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
?
通过使用 PHP 的全局数组 $_FILES,你可以从客户计算机向远程服务器上传文件 。
第一个参数是表单的 input name,第二个下标可以是 "name", "type", "size", "tmp_name" 或 "error" 。就像这样:
$_FILES["file"]["name"] - 被上传文件的名称
$_FILES["file"]["type"] - 被上传文件的类型
$_FILES["file"]["size"] - 被上传文件的大?。宰纸诩?
$_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称
$_FILES["file"]["error"] - 由文件上传导致的错误代码
这是一种非常简单文件上传方式 。基于安全方面的考虑 , 您应当增加有关什么用户有权上传文件的限制 。
上传限制
在这个脚本中,我们增加了对文件上传的限制 。用户只能上传 .gif 或 .jpeg 文件,文件大小必须小于 20 kb:
?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
($_FILES["file"]["size"]20000))
{
if ($_FILES["file"]["error"]0)
{
echo "Error: " . $_FILES["file"]["error"] . "br /";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "br /";
echo "Type: " . $_FILES["file"]["type"] . "br /";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kbbr /";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
}
else
{
echo "Invalid file";
}
?
注释:对于 IE , 识别 jpg 文件的类型必须是 pjpeg,对于 FireFox,必须是 jpeg 。
保存被上传的文件
上面的例子在服务器的 PHP 临时文件夹创建了一个被上传文件的临时副本 。
这个临时的复制文件会在脚本结束时消失 。要保存被上传的文件,我们需要把它拷贝到另外的位置:
?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
($_FILES["file"]["size"]20000))
{
if ($_FILES["file"]["error"]0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "br /";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "br /";
echo "Type: " . $_FILES["file"]["type"] . "br /";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kbbr /";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "br /";
if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file";
}
【后台上传数据php代码 php上传源码】?
上面的脚本检测了是否已存在此文件 , 如果不存在,则把文件拷贝到指定的文件夹 。
注释:这个例子把文件保存到了名为 "upload" 的新文件夹 。
后台上传数据php代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于php上传源码、后台上传数据php代码的信息别忘了在本站进行查找喔 。
推荐阅读
- flutter版本,Flutter版本升级
- java代码写超链接,java添加超链接
- b站神乐直播间,神乐直播间梗
- vb.net硬盘占用 vb中占用内存最小的数据类型是
- 如何在c语言中嵌入汇编语言指令,c语言怎么嵌入汇编
- 二战的即时战略游戏五个国家,2战即时战略游戏
- 螃蟹直播平台开发,螃蟹直播平台开发流程
- go语言3d人脸识别 人脸识别csdn
- 公众号怎么上存图片到相册,微信公众号里的图片怎么保存