2016-09-25 3 views
1

Ok ich bin ratlos, ich konnte erfolgreich skalierte Bild/Blob auf Server-Ordner hochladen. The problem is that the image/blob upload is always called blob. Gibt es eine Möglichkeit, den Namen auf der Client-Seite zu ändern oder sollte ich es auf der Server-PHP-Seite tun ?.
Und wenn so können Sie mir bitte hier ein Beispiel geben ist die 2-Skripte ich mitUmbenennen von BLOB form.append

Client-Seite

<script> 
function handleFiles(){ 
var dataurl = null; 
var filesToUpload = document.getElementById('input').files; 
var file = filesToUpload[0]; 

// Create an image 
var img = document.createElement("img"); 
// Create a file reader 
var reader = new FileReader(); 
// Set the image once loaded into file reader 
reader.onload = function(e) 
{ 
    img.src = e.target.result; 

    img.onload = function() { 
     var canvas = document.createElement("canvas"); 
     var ctx = canvas.getContext("2d"); 
     ctx.drawImage(img, 0, 0); 

     var MAX_WIDTH = 200; 
     var MAX_HEIGHT = 400; 
     var width = img.width; 
     var height = img.height; 

     if (width > height) { 
      if (width > MAX_WIDTH) { 
      height *= MAX_WIDTH/width; 
      width = MAX_WIDTH; 
      } 
     } else { 
      if (height > MAX_HEIGHT) { 
      width *= MAX_HEIGHT/height; 
      height = MAX_HEIGHT; 
      } 
     } 
     canvas.width = width; 
     canvas.height = height; 
     var ctx = canvas.getContext("2d"); 
     ctx.drawImage(img, 0, 0, width, height); 
     dataurl = canvas.toDataURL("image/jpeg",.2); 
     var blobBin = atob(dataurl.split(',')[1]); 
     var array = []; 
     for(var i = 0; i < blobBin.length; i++) { 
     array.push(blobBin.charCodeAt(i)); 
     } 
     var files = new Blob([new Uint8Array(array)], {type: 'image/jpg', name: ""}); 
     var filename = getFileName() 



     // Post the data 
     var fd = new FormData(); 
     fd.append("image",files); 
     $.ajax({ 
      url: 'http:///www.i-audit-jci.com/upload.php', 
      data: fd, 
      cache: false, 
      contentType: false, 
      processData: false, 
      type: 'POST', 
      success: function(data){ 
       $('#form_input')[0].reset(); 
       location.reload(); 
      } 
     }); 
    } // img.onload 
} 
// Load files into file reader 
reader.readAsDataURL(file); 
} 
</script> 

Server PHP

<?php 
$upload_image = $_FILES["image"][ "name" ]; 
$a = ('" alt="" />'); 
$folder = "images/"; 
move_uploaded_file($_FILES["image"]["tmp_name"], "$folder".$_FILES["image"]["name"]);; 
$file = 'images/'.$_FILES["image"]["name"]; 
$uploadimage = $folder.$_FILES["image"]["name"]; 
$newname = $_FILES["image"]["name"]; 
$msg = ''; 
if($_SERVER['REQUEST_METHOD']=='POST'){ 
$a = ('" alt="" />'); 
$image = $_FILES['image']['tmp_name']; 
$img = file_get_contents($image); 
$con = mysqli_connect('mysql***','***','***','***') or die('Unable To connect'); 
$sql = ("INSERT into links (hyper_links) VALUES('<img src=\"\https://www.i-audit-jci.com/images/".$_FILES['image']['name']."$a')"); 

$stmt = mysqli_prepare($con,$sql); 

mysqli_stmt_bind_param($stmt, "s",$img); 
mysqli_stmt_execute($stmt); 

$check = mysqli_stmt_affected_rows($stmt); 
if($check==1){ 
    $msg = 'Successfullly UPloaded'; 
}else{ 
    $msg = 'Could not upload'; 
} 
mysqli_close($con); 
} 
?> 
<?php 
echo $msg; 
?> 
+0

Oh mein das ist etwas beängstigend PHP-Code. Wenn du sagst, '' heißt immer blob', ist deine erste PHP-Codezeile '$ _FILES [" image "] [" name "]', dann ... was genau ist das? 'name' oder' blob'. – Abela

+0

Name in Bild Ordner ist nur Blob – INOH

+0

beim Speichern können Sie umbenennen umbenennen (oldname, newname, Kontext) – Cyclotron3x3

Antwort

2

Sie die Größe ändern kommunizieren bin mit einstellen Namenseigenschaft eines File Objekts, übergeben an FormData bei einem dritten Parameter von FormData.append() Funktion

var blob = new Blob([123], { 
 
    type: "text/plain" 
 
}); 
 
var data = new FormData(); 
 
// set `blob` name to `"file.txt"` 
 
data.append("file", blob, "file.txt"); 
 

 
console.log(data.get("file"), data.get("file").name);

+0

ok nicht sicher, wo jetzt in Original-Skript, könnten Sie mir bitte helfen, fügen Sie Ihr Snippet – INOH

+1

Verwenden Sie den dritten Parameter von ' FormData.append() 'um den Namen des' File' Objektes zu setzen, zB um die Datei zu '' file.txt '' zu benennen benutze 'fd.append (" Datei ", Datei," file.txt "); '. Der Rest von 'javascript' scheint das erwartete Ergebnis zurück zu geben – guest271314

+0

ok also ich habe hinzugefügt, muss nicht richtig gemacht haben, da der Dateiname gleich bleibt' var fd = new FormData(); ' ' fd.append ("image", Dateien) ; // blob file' 'fd.append (" Datei ", Datei," file.txt ");' – INOH