Zurück   Flashforum > Flash und Server > Flash mit XML und Webservices

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 15-12-2011, 18:01   #1 (permalink)
es lebe die Luft
 
Registriert seit: Nov 2010
Ort: this.stage
Beiträge: 91
FileReference.upload()-Empfang

Guten Tag.

Die upload()-Methode der Klasse FileReference benötigt ja ein serverseitiges Script zum Empfangen.

In welcher Sprache soll das denn geschrieben sein?
Geht es mit PHP?
Muss der Server irgendwelche besonderen Vorraussetzungen haben?
Gibt es ein fertiges Beispiel-Script?

MfG,
AIR-Fan
AIR-Fan ist offline   Mit Zitat antworten
Alt 15-12-2011, 23:16   #2 (permalink)
NCC 1701 D
 
Benutzerbild von speedjunkie
 
Registriert seit: Oct 2009
Ort: Metropolregion Hamburg
Beiträge: 588
Jede Sprache, die Du über ein HTTP Request zum Laufen bringst, kannst Du verwenden.

Ja Du brauchst auf jeden Fall ein Server, wo Du chmod Rechte vergeben kannst, von vordefinierten upload Folder halte ich nichts. Am liebsten sind mir Server, bei denen man Shell Zugang hat und man alles selber konfigurieren kann.

Mal angenommen Du rufst mit der Methode upload() upload.php Script auf. Wenn die Bedingung erfüllt sind, wird die Klassen Up.php verwenden. Du kannst Dateien und Scripts beliebig benennen es nur ein Beispiel.

upload.php

PHP-Code:
<?php
    
isset($_FILES['Filedata']) || die("!! the job was not accepted !!"); // ist es 'Filedata' ansonsten brich ab
    
$_FILES['Filedata']['error'] && die("!! the job was not accepted. an ERROR has occurred. !!"); //bei Fehler brich ab
    
8E6 $_FILES['Filedata']['size'] && die("!! the job was not accepted. the file is larger than 8MB !!"); //File größer als 8MB brich ab max in der php.ini     
    
$sourceDirectory 'image/thumbImage';
    
$bmp $_FILES['Filedata']; //bmp für bitmap
    
include('Up.php'); // include
    
new Up($sourceDirectory$bmp);  // Klasse  
?>
Up.php

PHP-Code:
<?php
final class Up
{
    private 
$path;
    private 
$timeStamp;
    private 
$newName;
    
    public function 
__construct($path$bmp)
    {       
        
$this->path $path;       
        
$this->save($bmp);
        return;
    } 
// end constructor
    
    
private function save($bmp)
    {
        
$mime $this->checkImage($bmp['tmp_name']);        
        
$fileExtension $this->check_MIME_Type($mime);        
        
$target $this->createNewImageName($bmp$fileExtension);
        
        if(@
move_uploaded_file($bmp['tmp_name'], $target))
    {
            
$tempFile $target;
            
chmod($tempFile,0644);
            echo 
"upload completed";
            
$this->saveThumbnail($target);
    }
    else
    {
            die(
"failed to upload");
        }
        return;
        
    } 
// end function
    
    
private function saveThumbnail($filename)
    {
        
$source imagecreatefromjpeg($filename);        
        
$currentWidth imagesx($source);
        
$currentHeight imagesy($source);        
        
$newHeight 148;        
        
$newWidth floor($currentWidth * ($newHeight $currentHeight));        
        
$thumb imagecreatetruecolor($newWidth$newHeight);        
        
$thumbPath "../showroom/$this->path/$this->newName";        
        
imagecopyresampled($thumb$source000$newWidth$newHeight$currentWidth$currentHeight);        
        
imagejpeg($thumb$thumbPath);        
        
$tempFile $thumbPath;
    
chmod($tempFile0644);        
        
imagedestroy($thumb);
        echo 
'. Thumbnail generated. -=END=- ';
        return;
        
    } 
// end function    
    
    
private function createNewImageName($bmp$fileExtension)
    {
        
$this->timeStamp time();        
        
$this->newName basename($bmp['name']);
    
$this->newName preg_replace('/\.(jpe?g|gif|png)$/i'""$this->newName);
    
$this->newName preg_replace('/[^a-zA-Z0-9_-]/'""$this->newName);        
    
$this->newName .= "_$this->timeStamp.$fileExtension";        
        return 
"../showroom/{$this->filterURL($this->path)}/$this->newName";
    } 
// end function
    
    
private function checkImage($bmpTmpName)
    {
        
$bmpINFO getimagesize($bmpTmpName);
        if(!
=== $bmpINFO) die('There is no Image!');
        else return 
$bmpINFO['mime'];      
    } 
// end function
    
    
private function check_MIME_Type($mime)
    {        
        
$mimeTypes = array('image/jpeg' => 'jpg',
                           
'image/gif'  => 'gif',
                           
'image/png'  => 'png' );
        
        isset(
$mimeTypes[$mime]) ? $fileExtension $mimeTypes[$mime] : die("not the correct MIME format");
        return 
$fileExtension;
        
    } 
// end function
    
    
private function filterURL($dir)
    {
        
$pos strpos($dir"/"); 
        return 
substr($dir0$pos);;        
    } 
// end function
    
    
public function __destruct()
    {       
        return;
    } 
// end function
}
?>
EDIT: was willst Du eigentlich uploaden? Bin davon ausgegangen, dass es ein Image ist.

Es geht auch mit weniger LoC’s.
__________________
just be Daniel
JUNK FOOD: JavaScript Core Reference

Geändert von speedjunkie (15-12-2011 um 23:38 Uhr)
speedjunkie ist offline   Mit Zitat antworten
Alt 16-12-2011, 18:12   #3 (permalink)
es lebe die Luft
 
Registriert seit: Nov 2010
Ort: this.stage
Beiträge: 91
Guten Tag, speedjunkie.

Dankeschön, $_FILES ist eine gute Idee. Wieso es jetzt auf einmal funktioniert weiß ich nicht, früher hatte ich es schon getestet, da ging es nicht. ^^'

Eine Frage noch:
Gibt es eine Eigenschaft/Methode/..., die den Wert der bereits geladenen Bytes enthält? Ich würde dem Benutzer gerne in % anzeigen, wie weit der Vorgang abgeschlossen ist.

MfG,
AIR-Fan

EDIT:
Schon gefunden, ProgressEvent.

Geändert von AIR-Fan (16-12-2011 um 18:28 Uhr)
AIR-Fan ist offline   Mit Zitat antworten
Alt 17-12-2011, 08:04   #4 (permalink)
NCC 1701 D
 
Benutzerbild von speedjunkie
 
Registriert seit: Oct 2009
Ort: Metropolregion Hamburg
Beiträge: 588
Ja genau! Und mit DataEvent.UPLOAD_COMPLETE_DATA kannst Du irgendwelche Information zurück senden.

ActionScript:
  1. _fileReference.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, completeDataHandler, false, 0, false);
  2.  
  3. private function completeDataHandler(e:DataEvent):void
  4. {         
  5.     trace(e.data as String);           
  6.     return;
  7. }

die("!! kill php script !!"); Bricht Dein Script ab!

oder

echo 'hello world';
__________________
just be Daniel
JUNK FOOD: JavaScript Core Reference
speedjunkie 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
FileReference - AS3 Upload mit php dieter223 ActionScript 2 2 23-03-2009 13:21
Upload per AS3 und FileReference ... mmgraphics ActionScript 3 3 14-05-2008 22:36
FileReference.upload() und sessions? pranko ActionScript 2 3 02-04-2008 12:01
FileReference.upload() rmasterb ActionScript 3 4 22-01-2008 13:37
FileReference.upload son yu Flash 8 1 29-03-2006 17:10


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:38 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele