【问题标题】:How to use a file name in move_uploaded_file如何在 move_uploaded_file 中使用文件名
【发布时间】:2016-09-02 20:00:42
【问题描述】:

我的目标是创建一个视频,然后将视频上传到文件服务器。我可以创建视频(以 BLOB 的形式),并且可以将 BLOB 转换为文件。接下来我想将该文件上传到服务器上。以下 html 和 php 代码将文件上传到服务器。我可以用从 BLOB 创建的文件名替换 $_FILES["fileToUpload"]["tmp_name"] 吗?有没有更简单的方法来实现我的目标?

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form action="upload_.php" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file"  name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload Image" name="submit">
</form>
</body>
</html>


<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
//$target_file = "myFile.jpg";

if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
    echo "The file ". basename( $_FILES["fileToUpload"]). " has been uploaded.";
     } else {
    echo "Sorry, there was an error uploading your file.";
}
?>

【问题讨论】:

  • 您可以(并且可能必须)将文件名放入move_uploaded_file 的第二个参数中,所以我真的没有看到您的问题?
  • 使用上传的名称是个坏主意。如果两个不同的用户各自上传一个名为MyVideo.jpg 的文件怎么办?当第二个用户上传他们的文件时,它将替换第一个。
  • 这不是问题,因为我将分配一个唯一的文件名。

标签: php html


【解决方案1】:

$_FILES['fileToUpload']['tmp_name']; 返回服务器上文件的临时文件名。

$_FILES['fileToUpload']['name'];从您的计算机返回上传文件的原始名称

您不能将 tmp_name 替换为 move_uploaded_file 中第一个参数的名称

【讨论】:

    猜你喜欢
    • 2015-02-05
    • 1970-01-01
    • 2015-06-09
    • 1970-01-01
    • 2014-02-08
    • 1970-01-01
    • 2011-05-22
    • 1970-01-01
    • 2020-06-21
    相关资源
    最近更新 更多