datei uploaden ohne upload button

rollerueckwaerts

Erfahrenes Mitglied
Guten Abend,
Bastel an nem kleinen Script welches ein paar Text & Upload -Formulare enthält die vom User gefüllt werden sollen und dann in die Datenbank bzw. im Dateiverzeichnis geschrieben werden sollen.

Soweit bin ich bisher gekommen (verkürzte Form)

PHP:
<?php
if(isset($_POST['submit']) && $_POST['submit']=="Senden"){
}else{
?>

<form action="" method="post" enctype="multipart/form-data">
<p>Vorschaubild:</p>
  <p>
   <label>
    <input type="file" name="vorschaubild" />
    </label>
  </p>
<input name="Senden" type="submit" value="Senden">
 <input name="Reset" type="reset" value="Löschen">
</form>



<?
if(!move_uploaded_file($_FILES['vorschaubild']['tmp_name'],"/components/com_virtuemart")){
   // Fehler beim Kopieren
   }
$DatabasePointer=mysql_connect($host, $user, $pass) or die ("Keine Verbindung moeglich"); 

mysql_select_db($dbname, $DatabasePointer) or die ("Die Datenbank existiert nicht");  

$SQL = "INSERT INTO jos_vm_product (product_desc) VALUES ('".$_POST['vorschaubild']."'')";
Bisher t alles außer der Dateiupload, er will sie mir nicht ins Archiv packen.
Bin kein Profi und hab schon einige Stunden an dem kleinen Script zugebracht.
Weiß icht ob ich noch irgendwo irgendwas vergessen hab ... bitte daher um Rat.

Lieben Dank schoma jetz !


Greetz
Tobs
 
Also die Datei kommt an und wird gespeichert?
Nur das schreiben in die DB funktioniert nicht?

Du schreibst in die DB ja $_POST['vorschaubild'], es gibt aber in deinem Formular kein Feld das einen solchen Text übergibt. Wenn du den Dateinamen der hochgeladenen Datei ansprechen willst verwende $_FILES['vorschaubild']['name']. Ansonsten mach noch ein Feld in dein Formular wo die Beschreibung reinkommst die du in deine DB speicherst.

PHP:
<?php
if(isset($_POST['submit']) && $_POST['submit']=="Senden"){
}else{
?>

<form action="" method="post" enctype="multipart/form-data">
<p>Vorschaubild:</p>
  <p>
   <label>
    <input type="file" name="vorschaubild" />
    <input name="description" />
    </label>
  </p>
<input name="Senden" type="submit" value="Senden">
 <input name="Reset" type="reset" value="Löschen">
</form>



<?
if(!move_uploaded_file($_FILES['vorschaubild']['tmp_name'],"/components/com_virtuemart")){
   // Fehler beim Kopieren
   }
$DatabasePointer=mysql_connect($host, $user, $pass) or die ("Keine Verbindung moeglich"); 

mysql_select_db($dbname, $DatabasePointer) or die ("Die Datenbank existiert nicht");  

$SQL = "INSERT INTO jos_vm_product (product_desc) VALUES ('".$_POST['description']."'')";
 
Mit $_FILES['vorschaubild].['name']. schreibts korrekt in die Datenbank, Lieben Dank dafür :)
Was kann da zur erfolgreichen Datenübertragung noch fehlen ?
Das mit der Datei speichern will noch net so ganz :

Vielleicht existiert der Fehler auch nur in der Komplettfassung ... pack die deshalb mal mit dazu

PHP:
<?php
if(isset($_POST['submit']) && $_POST['submit']=="Senden"){
 // Das Formular wurde gesendet
}else{
 // Das Formular muss angezeigt werden
?>


<form action="" method="post" enctype="multipart/form-data">
Was möchtest du verkaufen?
  <label>
  <input type="radio" name="radiobutton" value="radiobutton" />
    Privates</label>
  <label>
  <input type="radio" name="radiobutton" value="radiobutton" />
  Bilder</label>
  <label>
  <input type="radio" name="radiobutton" value="radiobutton" />
  Videos</label>
<p>Titel  
  <input name="titel" type="text" size="70" maxlength="30" />
</p>
Kurzbeschreibung:
  <textarea name="sbeschreibung" cols="60" rows="10"></textarea>
  <label>Preis:
  <input name="textfield" type="text" value="00,00 &euro;" size="6" maxlength="5" />
  </label> 
  &euro;
  <label>Beschreibung:
  <textarea name="beschreibung" cols="60" rows="10"></textarea>
  </label>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <p>Vorschaubild:</p>
  <p>
   <label>
    <input type="file" name="vorschaubild" />
    </label>
  </p>
  <p>&nbsp;</p>
  <p>Screenshots:</p>
  <p>
    <input type="file" name="screenshot" />
  </p>
  <input type="hidden" name="max_file_size" value="1000">

    <label>
    <input type="file" name="screenshot2" />
    </label>
  </p>
  <p>
    <label>
    <input type="file" name="screenshot3" />
    </label>
  </p>
  <p>Deine Ware: </p>
  <p>
    <input name="file" type="file" />
</p>  <p> 
</form>

<input name="Senden" type="submit" value="Senden">
 <input name="Reset" type="reset" value="Löschen">
  <p>
    <label></label>
  </p>
<p>&nbsp;</p>
</body>
</html>



<?php

if(!move_uploaded_file($_FILES['vorschaubild']['tmp_name'],"/components/com_virtuemart")){
   // Ups, es passierte ein Fehler beim Kopieren
   }

 $host = 'localhost';
 $user = 'root';
 $pass = 'root';
 $dbname = 'db22757';

$DatabasePointer=mysql_connect($host, $user, $pass) or die ("Keine Verbindung moeglich"); 
mysql_select_db($dbname, $DatabasePointer) or die ("Die Datenbank existiert nicht");  

$SQL = "INSERT INTO jos_vm_product (vendor_id, product_name, product_s_desc, product_desc, product_full_image, product_thumb_image, product_publish) VALUES ('1','".$_POST['titel']."','".$_POST['sbeschreibung']."','".$_POST['beschreibung']."','".$_FILES['vorschaubild']['name']."','".$_FILES['screenshot1']['name']."','Y')";
mysql_query($SQL, $DatabasePointer);
echo mysql_error();

if(mysql_affected_rows($DatabasePointer)==1)
{

?>
Vielen Dank für Ihren Eintrag!<br>
Zurück
<?php
}
else
{
?>
Beim Eintragen ist ein Fehler aufgetreten.<br>
Zurück
<?php
} }
?>
 
Hallo,

ich mal bei einem Projekt von mir auch mal Fileupload gebraucht und auch die kompliziertesten Probleme gehabt, obwohl es eig. ganz einfach is ;)

PHP:
if(is_uploaded_file($_FILES['datei']['tmp_name']))
{
   move_uploaded_file($_FILES['datei']['tmp_name'], $upload_dir.$_FILES['datei']['name']);
}

in $upload_dir steht das verzeichnis, wo die datei liegen soll.
dabei hat sie dann auf dem server den gleichen originalnamen wie aufm client.
die rechte im ordner müssen aber auf 0777 gesetzt sein!

lg
 
Zurück