2015-07-29 1 views
0

J'ai donc besoin de télécharger des images et leurs URL vers une base de données mySQL. En ce moment, je l'ai travailler de sorte qu'une image et son chemin relatif est en cours de téléchargement à la base de données et je suis fournir en sortie JSON comme ceci: (filepath est le chemin relatif)Télécharger l'URL de l'image vers la base de données mySQL pour la sortie JSON

[{"name":"photo","image":"savedphoto.jpg","filepath":"uploads/savedphoto.jpg"}] 

Ce que je veux est l'URL complète comme ceci:

[{"name":"photo","image":"savedphoto.jpg","filepath":"http://mywebsite.com/uploads/savedphoto.jpg"}] 

Voici le code que j'ai:

$name = $_POST['new']; 
$target_dir = "uploads/"; 
$uploadOk = 1; 
$target_file = $target_dir . basename($_FILES["image"]["name"]); 
$image_name = addslashes($_FILES['image']['name']); 

// 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; 
    } 

    $query = mysql_query("INSERT INTO new (name, filepath, image) 
     VALUES ('$name', '$target_file', '$image_name')"); 

    if($query) 
    { 
     echo"Successful"; 
    } else { 
     echo"Error"; 
    } 
} 

est-il possible d'enregistrer l'URL complète à la base de données? Comment pourrais-je modifier le code? Je veux exporter les données vers JSON.

Mon fichier JSON:

if ($result = mysqli_query($con, $sql)) 
{ 
$resultArray = array(); 
$tempArray = array(); 

while($row = $result->fetch_object()) 
{ 
    $tempArray = $row; 
    array_push($resultArray, $tempArray); 
} 
echo json_encode($resultArray); 
} 
function_exists('json_encode'); 

Répondre

0

u peut remplacer

$query = mysql_query("INSERT INTO new (name, filepath, image) 
     VALUES ('$name', '$target_file', '$image_name')"); 

avec

$query = mysql_query("INSERT INTO new (name, filepath, image) 
      VALUES ('{$name}', 'http://mywebsite.com/{$target_file}', '{$image_name}')"); 

MAIS. de son mieux pour vous remplacer dans le fichier de sortie

$tempArray = $row; 
array_push($resultArray, $tempArray); 

avec

$tempArray = $row; 
$tempArray->filepath = "http://{$_SERVER['HTTP_HOST']}/{$tempArray->filepath}"; 
array_push($resultArray, $tempArray); 

après que votre script fonctionnera sur tout hôte correctement sans modifier les données dans la base de données

+0

Merci. C'était aussi simple que ça .. – coderdojo

+0

ce n'est pas une bonne solution. mieux montrer votre code où vous construisez sortie json – M0rtiis

+0

J'ai modifié ma question avec la sortie JSON – coderdojo