2017-02-08 3 views
0

kann mir jemand helfen? Ich versuche, ein Bild in ein bestimmtes Verzeichnis mit PHP hochzuladen, und ich möchte wissen, wie man den Wert eines Textfeldes erhält und es als der Bilddateiname benutzt. Unten ist mein Code.Wie bekomme ich den Wert von Textboxen und benutze ihn als Dateinamen eines Bildes

<?php 
$target_dir = "uploads/"; 
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); 
$uploadOk = 1; 
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 
// Check if image file is a actual image or fake image 
if(isset($_POST["submit"])) { 
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); 
    if($check !== false) { 
     echo "File is an image - " . $check["mime"] . "."; 
     $uploadOk = 1; 
    } else { 
     echo "File is not an image."; 
     $uploadOk = 0; 
    } 
} 
// Check if file already exists 
if (file_exists($target_file)) { 
    echo "Sorry, file already exists."; 
    $uploadOk = 0; 
} 
// Check file size 
if ($_FILES["fileToUpload"]["size"] > 500000) { 
    echo "Sorry, your file is too large."; 
    $uploadOk = 0; 
} 
// Allow certain file formats 
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" 
&& $imageFileType != "gif") { 
    echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed."; 
    $uploadOk = 0; 
} 
// 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)) { 
     echo "The file ". basename($_FILES["fileToUpload"]["name"]). " has been uploaded."; 
    } else { 
     echo "Sorry, there was an error uploading your file."; 
    } 
} 


?> 

Jede Antwort wird geschätzt. Danke :)

Antwort

0

PHP move_uploaded_file(file, newloc) haben zweite Option als Quellziel + Dateiname. Wie:

move_uploaded_file(file, '/var/www/html/project/public'.$filename); 

hier $filename ist der Name der Datei, durch die sie auf den Server verschoben wird. Sie können der Datei einen beliebigen Namen wie den Zeitstempelwert oder eine vom Benutzer angegebene Zeichenfolge zuweisen.

In Ihrem Fall:

$filename = $_REQUEST['filename']; 
+0

Dank für Ihren Kommentar, ich will nur den Wert der Textbox bekommen und es zu meinem Image-Dateinamen –

+0

Überprüfen Sie die aktualisierte Antwort –

0

Was wirklich den Zieldateinamen zählt, um tatsächlich die folgenden Zeilen:

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

Also, man muss nur die POST-Anfrage an die PHP senden wie Folgendes, wie Sie wahrscheinlich getan haben:

<form method="POST" action="target_process.php"> 
<input type="text" name="filename"> 
...(other form objects here) 
</form> 

Und rufen Sie die Informationen in der PHP, und appe nd es zur Zieldatei. Hängen Sie den Erweiterungstyp an das Ende der Datei an.

<?php 
$target_dir = "uploads/"; 
$file_parts = explode('.', $_FILES["fileToUpload"]["name"]); 
$ext = $file_parts[count($file_parts) - 1]; 
$target_file = $target_dir . $_POST['filename'] . '.' . $ext; 
+0

wie etwa gesetzt, wenn ich zwei Textbox haben? –

Verwandte Themen