#1 2017-04-11 10:01:23

snajpr
Člen
Registrován: 2013-03-12
Příspěvky: 5

PHP - upload a čtení txt/json souboru

Zdravíčko,
potřeboval bych pomoci s uploadem a následným čtením textového souboru, nechci jej ukládat, pouze vybrat a přečíst, můj kód je zde:

html form:

<form  method='post' enctype='multipart/form-data'>
    <input type='file' name='fileToUpload' id='fileToUpload'>
    <input type='submit' value='Nahrát' name='submit'>
</form>

php:

if(isset($_POST["submit"])) {
  $target_file = $_FILES["fileToUpload"]["name"];
  if ($json=file_get_contents($target_file)){
     ...
  }else{
	echo "Soubor se nepovedlo otevrtit";
  }
}

JSONa mám v pořádku, na localhostu mi to jede, ale na endoře ten soubor ani nenačtu. Může mi prosím někdo poradit kde je chyba nebo jak jinak to vyřešit.

Děkuji!!!

Offline

#2 2017-04-18 15:13:23

PetrAndel
Podpora
Registrován: 2015-07-27
Příspěvky: 492

Re: PHP - upload a čtení txt/json souboru

Dobrý den,

zašlete prosím kompletní kód, který jste testovali

Offline

#3 2017-04-20 10:03:03

snajpr
Člen
Registrován: 2013-03-12
Příspěvky: 5

Re: PHP - upload a čtení txt/json souboru

<?php

header("Content-Type: text/html; charset=UTF-8");

$mysqli = new mysqli('localhost', 'snajpr', 'numetal666', 'pasport');
//$mysqli = new mysqli('localhost', 'root', '', 'crm');


if ($mysqli->connect_error) {
    die('Nepodařilo se připojit k MySQL serveru (' . $mysqli->connect_errno . ') '
            . $mysqli->connect_error);
}
//nastaveni kodovani na utf8
mysqli_query($mysqli, "SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'");

if(isset($_POST["submit"])) {
	$target_file = $_FILES["fileToUpload"]["name"];
	echo $target_file;
	echo file_get_contents($target_file);
	if ($json=file_get_contents($target_file)){

		if($obj = json_decode($json)){
			foreach ($obj->features as $feature){
			
			$x=$feature->geometry->coordinates[0];
			$y=$feature->geometry->coordinates[1];
			$coord="'POINT(".$x." ".$y.")',0";
			$sql_insert = "INSERT INTO `SM` ... TADY JE DLOUHEJ INSERT CCA NA 5 ŘÁDKŮ;
				
		 if ($mysqli->query($sql_vlozit) === TRUE) {
				 echo "<script type='text/javascript'>alert('Informace se úspěšně uložily.');</script>";
			  } else {
				 $message= "Error u vlozeni informaci: " . $sql_vlozit . "<br>" . $mysqli->error;
				 echo "<script type='text/javascript'>alert('$message');</script>";    
			  }	
				
				echo $feature->properties->Cislo.",".$feature->geometry->coordinates[0]."<br />";
			}
		}else{
			echo"geojson je poskozeny";
		}	
	}else{
		echo "Soubor se nepovedlo otevrtit";
	}
}
    
   

?>
<html>
	<title>Želenice - pasport VO</title>
   <meta http-equiv='content-type' content='text/html; charset=utf-8'>
   <body>
<form  method='post' enctype='multipart/form-data'>
    
    <input type='file' name='fileToUpload' id='fileToUpload'>
    <input type='submit' value='Nahrát' name='submit'>

    
</form>

<script>

	
</script>

</body>
</html>

Offline

#4 2017-04-20 12:49:57

PetrAndel
Podpora
Registrován: 2015-07-27
Příspěvky: 492

Re: PHP - upload a čtení txt/json souboru

Jediný způsob jak by Vám toto mohlo fungovat na localhostu je ten, že byste soubor se stejným názvem jako nahráváte již měli v adresáři s PHP skriptem. Předpokládal jsem že soubor nějakým způsobem v jiné části skriptu skutečně ukládáte.
Bez ukládání to lze udělat pouze takto:

file_get_contents($_FILES["fileToUpload"]["tmp_name"])

místo

file_get_contents($target_file)

Jelikož v $target_file máte pouze název souboru, skript se snaží načíst soubor se stejným názvem z adresáře kde je PHP skript. Varianta kterou jsem posílal načte soubor z dočasného umístění.

Offline

Zápatí

Založeno na FluxBB | CZ a SK