Zurück   Flashforum > Flash und Server > PHP und MySQL

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-02-2011, 13:40   #1 (permalink)
Neuer User
 
Registriert seit: Feb 2011
Beiträge: 4
Bild über AS3 und PHP auf Server speichern

Hallo.

Ich erstelle gerade ein Formular mit AS3, mit dem der Benutzer Adressangaben und eine Bilddatei an ein PHP Script sendet, das diese dann auf dem Server speichert. Die Übergabe und das Sichern von Strings funktioniert auch wunderbar, leider habe ich keine Ahnung, wie das mit dem Bild funktioniert.

Hier ist mein Action Script. Ich habe versucht, nur den relevanten Teil zu posten und hoffe, dass es so noch stimmt.

Code:
var referenz:FileReference = new FileReference();
var bytes:ByteArray;

referenz.load();
var bytes:ByteArray = referenz.data;

var req:URLRequest = new URLRequest();
req.data = bytes;
req.url = "flash-post.php";
req.method = URLRequestMethod.POST;
var loader:Loader = new Loader();
loader.load(req);
Das ist das zugehörige PHP Dokument "flash-post.php"

PHP-Code:
<?php

if (isset($GLOBALS['HTTP_RAW_POST_DATA']))file_put_contents($_POST['loader'],file_get_contents("$ordner/$bild"));
else echo 
'No Data';

?>
Das ist mein erster Beitrag in einem Forum, daher hoffe ich sehr, dass mir etwaige Fehler oder Ungereimtheiten vergeben werden

Kann mir jemand helfen?
Superflat ist offline   Mit Zitat antworten
Alt 11-02-2011, 13:53   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
willkommen im flashforum!

ein bild, das du in flash selbst generierst?
dann such mal im internet nach:
as3 JPEGEncoder

oder ein bild von der festplatte des clients?
dann such mal im internet nach:
as3 file upload
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 11-02-2011, 13:57   #3 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
File Upload fuktioniert nicht
__________________
(\__/)
(='.'=)
(")_(")
Nightflyer ist offline   Mit Zitat antworten
Alt 11-02-2011, 14:15   #4 (permalink)
Neuer User
 
Registriert seit: Feb 2011
Beiträge: 4
Vielen Dank für die schnellen Antworten.

@hgseib: Es geht um ein Bild von der Festplatte des Clients. Deinen Suchtipp werde ich gleich mal probieren.

@Nightflyer: Danke. Dann versuche ich mich mal durch den Code zu wühlen...
Superflat ist offline   Mit Zitat antworten
Alt 15-02-2011, 09:12   #5 (permalink)
Neuer User
 
Registriert seit: Feb 2011
Beiträge: 4
So, jetzt ist etwas Zeit vergangen und es gibt tatsächlich Fortschritte. Hab ein Tutorial gefunden, mit dem der Benutzer nun endlich ein eigenes Bild auf dem Server in einem via Flashformularfelder benannten Ordner ablegen kann.

Leider speichert PHP nun kein zusätzliches Textfile mit den restlichen Strings (Firma, Email etc.) aus Flash ab. Da das zuvor schon funktioniert hat, bin ich nun vollends verwirrt.

Das ist mein AS3 Code (obwohl ich das Problem in PHP vermute...)
Code:
stop();

// Variablen für Textinput
var Name:String;
var Vorname:String;
var Firma:String;
var Email:String;
var Telefon:String;
var Status:String;

// Fortschrittstextbox
status_txt.text = "";

// Sendenbutton deaktivieren
senden_btn.enabled = false;

// URL für PHP Upload
var req:URLRequest = new URLRequest("flash-post.php");
// Bildfilter
var bildfilter:FileFilter = new FileFilter("Images (*.jpg, *.jpeg, *.gif, *.png)", "*.jpg; *.jpeg; *.gif; *.png");
// Bildfilter in Array stecken (warum?!)
var filter:Array = new Array(bildfilter);
// Objekt zur Interaktion mit Dateien
var referenz:FileReference = new FileReference();

// Eventlistener zum Prüfen des Textinput
name_txt.addEventListener(Event.CHANGE, pruefen);
vorname_txt.addEventListener(Event.CHANGE, pruefen);
firma_txt.addEventListener(Event.CHANGE, pruefen);
email_txt.addEventListener(Event.CHANGE, pruefen);
telefon_txt.addEventListener(Event.CHANGE, pruefen);

// Sind nicht alle Felder beschriftet, kein Senden möglich
function pruefen(evt:Event) {
  var ok:Boolean = true;
  if (name_txt.text == "" ||
	  vorname_txt.text == "" ||
	  firma_txt.text == "" ||
	  email_txt.text == "" ||
	  telefon_txt.text == "") {
	ok = false;  
  }
  if (senden_btn.enabled != ok) {
	senden_btn.enabled = ok;
  }
}

// Eventlistener für verschiedene Zustände des Referenz Objektes
referenz.addEventListener(Event.SELECT, auswaehlen);
referenz.addEventListener(Event.CANCEL, abbrechen);
referenz.addEventListener(Event.COMPLETE, ladenBeendet);

// Eventlistener für Schaltflächen
laden_btn.addEventListener(MouseEvent.CLICK, dateiLaden);
senden_btn.addEventListener(
  MouseEvent.CLICK,
  function(evt:Event) {
	if (senden_btn.enabled) {
		/*Name = name_txt.text;
		Vorname = vorname_txt.text;
		Firma = firma_txt.text;
		Email = email_txt.text;
		Telefon = telefon_txt.text;*/
		var vars:URLVariables = new URLVariables();
		vars.Name = name_txt.text;
		vars.Vorname = vorname_txt.text;
		vars.Firma = firma_txt.text;
		vars.Email = email_txt.text;
		vars.Telefon = telefon_txt.text;
		req.method = URLRequestMethod.POST;
		req.data = vars;
		req.url = "flash-post.php";
		referenz.upload(req);
		MovieClip(root).gotoAndStop(2);
	}
  }
);

// Funktionen für verschiedene Zustände des Referenz Objektes
function abbrechen(evt:Event):void {
	status_txt.text = "Dateiauswahl abgebrochen";
}
function ladenBeendet(evt:Event):void {
	status_txt.text = "Datei geladen";
}

// Funktion zur Schaltfläche "Bild laden"
function dateiLaden(event:MouseEvent):void {
referenz.browse(filter);
}

// Function that fires off when File is selected from PC and Browse dialogue box closes
function auswaehlen(event:Event):void {
status_txt.text = "Dateiauswahl beendet";
}
Und hier der PHP Code

PHP-Code:
<?php

  
// Stringvariablen aus Flash übernehmen
  
$Vorname $_POST['Vorname'];
  
$Name $_POST['Name'];
  
$dokument $Vorname $Name '.txt';
  
$ordner $Vorname $Name;
  
$daten print_r($_POST['Vorname'], true);
  
  
// Ordner erstellen
  
mkdir($ordner,0755);
  
  
// Dokument mit Stringvariablen erstellen
  
file_put_contents(
    
"$ordner/$file"
    
$daten . @file_get_contents("$ordner/".$dokument));

  
  
  
// PHP Variablen aus Flash Variablen erstellen
  
$bildname $_FILES['Filedata']['name'];    
  
$bildtmpname $_FILES['Filedata']['tmp_name'];    
  
$bildTyp $_FILES["Filedata"]["type"];
  
$bildGroesse = ($_FILES["Filedata"]["size"] / 1024 1000);

  
// Datei auf dem Server speichern
  
move_uploaded_file($_FILES['Filedata']['tmp_name'], "$ordner/".$bildname);
  
?>
Da der Ordner korrekt benannt wird kommen die Variablen aus Flash offenbar an. Allerdings wird wohl meine Variable $daten nicht oder falsch erstellt. Kann mir irgendwer meinen Fehler zeigen?
Superflat ist offline   Mit Zitat antworten
Alt 15-02-2011, 09:26   #6 (permalink)
Neuer User
 
Registriert seit: Feb 2011
Beiträge: 4
Okay, das war jetzt blöd. Problem gelöst.

Hab eine Variable im PHP Script, die es nicht gibt. So ist es richtig:

PHP-Code:
file_put_contents(
    
"$ordner/$dokument"
    
$daten . @file_get_contents("$ordner/".$dokument)); 
Superflat ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
bild auf server speichern tukinu ActionScript 3 0 15-09-2008 09:09
mit webcam bild Speichern auf server Exit Flash Media Server 1 06-02-2004 11:15
zusammengesetzte Instanz als Bild auf Server speichern casio Flash MX 6 05-02-2004 10:45
Mit Flash Webcam Bild capture und auf Server speichern psiu ActionScript 1 1 17-09-2003 19:45
Webcam Bild speichern auf Server mop73 Flash MX 0 28-08-2002 17:34


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:07 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele