Formularz z jednoczesnym wysłaniem zdjecia i danych.

0

Czesc chce zrobic formularz, ktory po wcisnieciu jednego jedno 'submit' wysle zarowno zdjecie jak i zwykle dane textowe. Probowalem sie z tym bawic, ale jakos nic z tego nie wychodzi. Owszem, osobno dziala jak najbardziej, lecz w polaczeniu nie jest juz tak kolorowo. Zalezy mi na tym, poniewaz jako query do bazy uzywam INSERT INTO i chcialbym zeby te wartosci rownoczesnie poszly do bazy pod tym samym id. Text, jak i longblob.

1

Formularz musi mieć atrybut enctype="multipart/form-data".

0

Niestety i tak mi nie wychodzi. Czy mogblys mi pokazac na jakims tutorialu jak to zrobic konkretnie? Bo niestety ale wciaz tylko zdjecie wysyla, tekstu niestety nie.

0

Przecież tego od groma w Google pierwszy link http://www.w3schools.com/php/php_file_upload.asp oczywiście do tego formularza możesz dodać sobie zwykłe pola np. input.

0

Przecież upload zdjęcia to takie samo pole formularza, jak każde inne. Upewnij się, że dla obrazka/pliku masz type="file", a dla tekstu type="text". http://stackoverflow.com/questions/8157010/is-it-possible-with-upload-a-file-and-submit-text-in-a-single-form w pierwszym rozwiązaniu masz fajną odpowiedź.

Tutaj również masz super wytłumaczone:
http://www.hotscripts.com/forums/php/6328-upload-image-text-mysql-same-time.html

Skup się na odpowiednim query do Googla najpierw :D

0

Robie najzwyczajniej jak sie da, nie wiem czy jestem zmeczony czy co ale mi nie wychodzi po prostu. A o to moj kod:

 

<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>

</head>

<body>
<form enctype="multipart/form-data" action="uploader.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
Name:<input name="filmname" type="text" /><br />
Choose a file to upload: <input name="image" type="file" /><br />
<input type="submit" value="Upload File" />
</form>
</body>

</html>

A o to uploader.php

$con=@mysql_connect("localhost","root","");
				@mysql_select_db("db",$con);
				
				$image = addslashes(file_get_contents($_FILES['image']['tmp_name'])); //SQL Injection defence!
				$image_name = addslashes($_FILES['image']['name']);
				$filmname = $_POST['filmname'];
				$sqll = "INSERT INTO `dbe` (`name`) VALUES ( '{$filmname}')";
				$sql = "INSERT INTO `dbe` (`image`, `imagename`) VALUES ( '{$image}', '{$image_name}')";
				

			
				if (!@mysql_query($sql) && !@mysql_query($sqll) ) { 
					echo "Something went wrong! :("; 
				}
				else{
					header('Location: add.php');
				}
 
0
  1. mysqli/pdo do operacji na bazach danych
  2. jak ukrywasz sobie błędy to się nie dziwię, że nic nie wiesz. Usuń wszystkie @.
  3. wypadałoby jeszcze sprawdzać czy ktoś wrzucił rzeczywiście zdjęcie, bo teraz to można uploadować wszystko.

http://davidwalsh.name/basic-file-uploading-php

0

Dziekuje za cenne rady, przestudiowalem troche wasze odpowiedzi. Jestem juz prawie przy koncu zadania. Jedyna rzecz jaka mi zostala to umieszczenie zdjecia w BLOBIE na serwerze, bo nazwe wraz z input typu tekst umieszczam rownoczesnie, lecz zdjecia nie moge wyslac do bazy.
Nazwa jest umieszczona, ale jak probuje cos wykombinowac z samym plikiem to mi nie wychodzi.
Z takiego skryptu korzystam.

 
if(isset($_POST['ok'])){
						$target = "upload/";
						$target = $target . basename( $_FILES['img']['name']);

						//This gets all the other information from the form
						$Filename=$_FILES['img']['name'];$Filename=basename( $_FILES['img']['name']);
						$image=$_FILES['img']['tmp_name'];$Filename=basename( $_FILES['img']['tmp_name']);
						
						$Description=$_POST['Description'];


						//Writes the Filename to the server
						if( move_uploaded_file($_FILES['img']['tmp_name'], $target)) {
							//Tells you if its all ok
							echo "The file ". basename( $_FILES['img']['name']). " has been uploaded, and your information has been added to the directory";
							// Connects to your Database
							$dbc= mysqli_connect("localhost","root","zaq1@WSX","json") or die("Error " . mysqli_error($dbc));;

							//Writes the information to the database
							$query ="INSERT INTO horrors (filmname,image,imagename)
							VALUES ( '$Description','$image','$Filename')" or die("Error in the consult.." . mysqli_error($dbc));
							$result = $dbc->query($query); 
						} else {
							//Gives and error if its not
							echo "Sorry, there was a problem uploading your file.";
						}
}
0

Prosty przykład bez żadnych zabezpieczeń!

<?php
   $image_name = addslashes($_FILES['img']['name']);
   $filmname = $_POST['filmname'];
   $image = file_get_contents($_FILES['img']['tmp_name']);
   $mysqli = mysqli_connect("localhost","root","zaq1@WSX","json");
   $stmt = $mysqli->prepare("INSERT INTO horrors (filmname, imagename, image) VALUES(?, ?, ?)"); 
   $null = NULL;
   $stmt->bind_param('ssb', $filmname, $image_name, $null);
   $stmt->send_long_data(2, $image);
   $stmt->execute();    
?>  

1 użytkowników online, w tym zalogowanych: 0, gości: 1