嗨,我试图在网上搜索,但实际上找不到它.那么$_FILES['file']['name']和之间的区别是$_FILES['file']['tmp_name']什么,或者究竟是$_FILES['file']['tmp_name']什么?
根据http://php.net/manual/en/features.file-upload.post-method.php,
$ _FILES ['userfile'] ['name']客户端计算机上文件的原始名称.
$ _FILES ['userfile'] ['tmp_name']上传文件存储在服务器上的文件的临时文件名.
那么临时文件名和原始文件名有什么区别?
谢谢
$_FILES['file']['tmp_name']
Run Code Online (Sandbox Code Playgroud)
提供存储在系统临时文件目录中Web服务器硬盘上的文件的名称,除非使用php.ini文件中的upload_tmp_dir设置指定了另一个目录.只要负责处理表单提交的PHP脚本正在运行,就会保留此文件.因此,如果您想稍后使用上传的文件(例如,将其存储以在网站上显示),您需要在其他地方复制它.
要执行此操作,您可以使用move_uploaded_file()函数将上载的文件从其临时位置移动到永久位置.请注意,为了这个目的,你最好将copy_uploaded_file()用于copy()和rename()之类的函数, 因为它会执行额外的检查以确保文件确实是由HTTP POST请求上传的.
$_FILES['file']['name']
Run Code Online (Sandbox Code Playgroud)
在提交之前提供客户端计算机上文件的名称.如果您制作临时文件的永久副本,您可能希望为其指定原始名称,而不是上面描述的自动生成的临时文件名.
总而言之:
$_FILES["file"]["name"] //stores the original filename from the client
$_FILES["file"]["tmp_name"] //stores the name of the temporary file
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你!
当您将文件发送到服务器端脚本(php 或 asp 或...)时,服务器将上传您的文件并将其移动到其自身的临时目录,直到脚本文件的处理完成。然后它将从该目录中删除该文件。所以$_FILES['file']['tmp_name']是临时文件的路径(未命名)
所以让我们检查/看看这个:因为 php 文件的处理速度非常快,特别是在像 xampp 这样的虚拟服务器上,所以我们在创建 tmp 文件时看不到它。所以我们使用sleep()php 的函数来查看到底发生了什么,这里我们有一个包含非常简单的 php 代码的页面,这就是发生的事情:
<?php
if (isset($_POST['submit'])) {
sleep (4);
echo $_FILES['fileToUpload']['tmp_name'];
}
?>
<!DOCTYPE html>
<html lang="en">
<head></head>
<body>
<form action="" method="post" enctype="multipart/form-data">
Select image to upload:
<input onchange="uImage(event)" type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Upload Image" name="submit">
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
注意 1:对于 php 服务器,您可以在 php.ini 文件中找到您的服务器临时路径。这是该upload_tmp_dir文件中的值
您的文件将临时存储在此路径上$ _FILES ['image_path'] ['tmp_name'].因此,当您移动它时,将从临时文件夹中删除到您的文件夹.如果您使用copy命令而不是move_uploaded_file,那么您的临时文件将保留在服务器的临时文件夹中.你可以在那里搜索文件名.
| 归档时间: |
|
| 查看次数: |
26842 次 |
| 最近记录: |