Saturday, September 4th 2010, 3:16am UTC+2

You are not logged in.

  • Login
  • Register

xlive

Intermediate

Posts: 356

Location: Flashbanditen Heidelberg

1

Monday, August 18th 2008, 9:51am

FileReference (Bild upload)

Hi,

habe mir mal das Beispiel aus den Flash-Docs zum Thema FileReference "Anwendungen die Funktion zum Hochladen von Dateien hinzufügen" angeschaut.
Wenn ich das ganze mal teste, können bei mir keine Bilder in das Verzeichnis "image" geladen werden. Wenn ich es richtig verstehe, muss auch das Verzeichnis "temporary" zum zwischenspeichern anlegt werden. Aber in beiden Verzeichnissen kommt nichts an?!
Im PHP-Script werden zwei Fehler angezeigt?

PHP Source code

1
2
3
4
Warningexif_imagetype(): Read errorin /mydomain/fileupload.php on line 10

Warningunlink(./temporary/): Is a directory in /mydomain/fileupload.php on line 14
Array ( [0] => Array ( [0] => ./images/. [1] => 1218808339 ) [1] => Array ( [0] => ./images/.. [1] => 1218811967 ) )

PHP Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php

$MAXIMUM_FILESIZE 1024 200// 200 KB
$MAXIMUM_FILE_COUNT 10// maximal 10 Dateien auf dem Server speichern

echo exif_imagetype($_FILES['Filedata']);
if ($_FILES['Filedata']['size'] <= $MAXIMUM_FILESIZE) 
{
  move_uploaded_file($_FILES['Filedata']['tmp_name'], "./temporary/".$_FILES['Filedata']['name']);
  $type exif_imagetype("./temporary/".$_FILES['Filedata']['name']);
  if ($type == || $type == || $type == 3) {
    rename("./temporary/".$_FILES['Filedata']['name'], "./images/".$_FILES['Filedata']['name']);
  } else {
    unlink("./temporary/".$_FILES['Filedata']['name']);
  }
}

$directory opendir('./images/');
$files = array();

while ($file readdir($directory)) {
  array_push($files, array('./images/'.$filefilectime('./images/'.$file)));
}
usort($filessorter);
if (count($files) > $MAXIMUM_FILE_COUNT) {
  $files_to_delete array_splice($files0count($files) - $MAXIMUM_FILE_COUNT);
  for ($i 0$i count($files_to_delete); $i++) {
    unlink($files_to_delete[$i][0]);
  }
}
print_r($files);
closedir($directory);

function sorter($a$b) {
  if ($a[1] == $b[1]) {
    return 0;
  } else {
    return ($a[1] < $b[1]) ? -1;
  }
}
?>

Grüße xlive
  • Go to the top of the page

dregi

Moderator

Posts: 612

Location: Schweiz, Ungarn, Italien, Tunesien, Marokko, Spanien

2

Monday, August 18th 2008, 3:58pm

Dein Script ist einwandfrei.

hast du den Ordner ./temporary/ angelegt?
dies gilt auch für den ./images/ Ordner.
scheint mir auch das bei dem Aufruf der php Datei was nicht stimmt denn.

unlink("./temporary/".$_FILES['Filedata']['name']);
ergibt bei dir:
Warning: unlink(./temporary/):
dementsprechend ist $_FILES['Filedata']['name'] ="";

Dein AS Code mit dem du die php Datei aufrufst sollte in etwa so aussehen:

ActionScript-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
System.security.allowDomain("*");
import flash.net.FileReference;

// The listener object listens for FileReference events.
var listener:Object = new Object();
var imageFile:FileReference = new FileReference();
imageFile.addListener(listener);
var mcLoader:MovieClipLoader = new MovieClipLoader();
var loadListener:Object = new Object();
mcLoader.addListener(loadListener);

// Wenn der User ein Bild auswählt wirde die refferenz dem FileReference object übergeben
listener.onSelect = function(selectedFile:FileReference):Void {
statusArea.text += "Upload gestartet" selectedFile.name "\n";
  // Uploaded die Datei durch das PHP script.
  selectedFile.upload("imgupload.php");
};

   // Statustext: wird geöffnet.
listener.onOpen = function(selectedFile:FileReference):Void {
statusArea.text += "wird geöffnet " selectedFile.name "\n";
};

// wenn das File oben ist wird onComplete() aufgeruffen.
listener.onComplete = function(selectedFile:FileReference):Void {
statusArea.text += "fertig " selectedFile.name "\n";

nbild _root.createEmptyMovieClip("nbild",_root.getNextHighestDepth());
mcLoader.loadClip("./images/"+selectedFile.namenbild);};
loadListener.onLoadComplete=function(){
statusArea.text += "bild " selectedFile.name " sollte nun sichbar sein\n";
}

// wen buton gedruckt.
function uploadImage(event:Object):Void {  imageFile.browse([{description"Image Files"extension"*.jpg;*.gif;*.png"}]);}

//button zum upload starten
upload_btn.onPress=function(){uploadImage("click");sttatusArea.text ="btn_gedruckt/n"}

stop();


hab das Script jetzt nicht getestet sollte aber funktionieren

Liebe Grüsse Dregi
Bitte keine Hilfestellungen mehr über PM und E-Mail anfragen, hierfür ist das Forum da
Im Mittelalter würde das Gesetz Auge um Auge eingeführt, seither ist die Menschheit blind.
Neu: Lieferbar www.lieferbar.ch lieferbar.ch
  • Go to the top of the page