在上传文件时用PHP中的下划线替换空格

时间:2017-11-17 01:17:40

标签: php

我有一个允许用户上传图片的脚本。我正在研究从图像集合中抓取随机图像的东西,但是这些空间似乎与网址有关,这意味着我需要弄清楚如何用_s替换空格。

newValue

正如您在此处所见,我尝试添加<?php $target_dir = "images/"; $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); $uploadOk = 1; $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); // Check if $uploadOk is set to 0 by an error if ($uploadOk == 0) { echo "Sorry, your file was not uploaded."; // if everything is ok, try to upload file } else { if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { $target_file = str_replace(' ', '_', $target_file); echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded."; } else { echo "Sorry, there was an error uploading your file."; } } 来替换字符串,但图片仍会上传空格。我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:0)

这是因为您在上传后更换了它,您应该在上传之前进行更换。

<?php
$target_dir = "images/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
    echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
    $target_file = str_replace(' ', '_', $target_file);
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
    } else {
        echo "Sorry, there was an error uploading your file.";
    }
}

答案 1 :(得分:-1)

在您的代码中,仅替换文件名字符串的内容。

它不会改变实际的文件名。

您需要在str_replace之前使用move_uploaded_file

答案 2 :(得分:-1)

您的代码应为:

<?php
$target_dir = "images/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
    echo "Sorry, your file was not uploaded.";
    // if everything is ok, try to upload file
} else {
    $target_file = str_replace(' ', '_', $target_file);
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"],  $target_file)) {
        echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
    } else {
        echo "Sorry, there was an error uploading your file.";
    }
}