Autor Beitrag
koller1
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 216

WIN XP
D7 Ent
BeitragVerfasst: Do 06.09.07 22:13 
Hallo!
Habe hier ein Problem und komme mit der Lösung nicht weiter.
Unzwar habe ich ein Formular zum Eintragen von Lehrern einer Schule (programmiere mit einem Freund eine Schulhomepage) und da soll man auch Bilder hochladen können.
Unzwar nutze ich dafür <input type='file' ......./>. Soweit so gut. Nun will ich aber neben der Datei, die z.B. mmueller.jpg heißt noch eine weitere hochladen namens mmueller_thumb.jpg. Die zweite Datei hat immer den Namen der ersten +_thumb hinten dran. Dieses Bild ist kleiner von der Dateigröße her. Da die _thumb-Datei immer im gleichen Ordner liegt, wie ihr "großer Bruder", möchte ich die Datei automatisch hochladen, ohne den Nutzer die Datei wieder auswählen zu lassen. Nun habe ich versucht den bei <input type='file'........./> angegeben Pfad in einem Hidden-Button zu speichern, was auch geklappt hat. Aber wenn ich diese Pfad dann bei copy() als erstes Argument einsetze, klappt es net. Und da $_FILES['file']['tmp_name'] auch nichts aussagt, wollte ich mal fragen, wie ich die zweite Datei uploaden kann, ohne eine weitere Benutzereingabe.
Habt ihr da ne Idee?
MFG
koller1

_________________
PLEASE INSERT SYSTEM DISK AND PRESS ENTER!
Und wenn du nicht gestorben bist, presst du noch heute! ;)
Marco D.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: Do 06.09.07 22:19 
Ich hab da eine Idee, wie man das mit JS lösen kann. Ich poste weitere Einzelheiten morgen.

_________________
Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
DarkHunter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 477

Win XP
D3 Prof, D2005 PE
BeitragVerfasst: Fr 07.09.07 23:10 
Wäre es nicht einfacher, aus dem Ursprungsbild mithilfe der PHP-Image-Funktionen ein Thumbnail zu erstellen?

Damit bräuchte man weniger Traffic von Userseite.
Außerdem kann man so die Dimensionen des Thumbs genau anpassen.

Die Funktion erwartet den Namen des Bildes als String.

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
function create_thumbnail($image,$size = array(140,100),$prefix = "t_"){
  $im = getImage($image);
  $w = imagesx($im);
  $h = imagesy($im);
  $wf = $w / $size[0];
  $hf = $h / $size[1];
  if ($wf > $hf) {
    $tw = $size[0]; //Thumbnail width
    $th = $h / $wf;
  } else {
    $tw = $w / $hf;
    $th = $size[1]; //Thumbnail height
  }
  $thumb = imagecreatetruecolor($tw,$th);
  imagecopyresized($thumb,$im,0,0,0,0,$tw,$th,$w,$h);
  saveImage($thumb,$prefix.$image);
  imagedestroy($im);
}


Die beiden aufgerufenen Funktionen SaveImage() und getImage() sehen wie folgt aus.
ausblenden volle Höhe 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:
function getImage($f){
  $ext = fileext($f);
  if ($ext == "jpeg" || $ext == "jpg")
    $im = imagecreatefromjpeg($f);
  else if ($ext == "gif")
    $im = imagecreatefromgif($f);
  else if ($ext == "png")
    $im = imagecreatefrompng($f);
  return $im;
}

function saveImage($imgHnd,$file){
  $ext = fileext($file);
  if ($ext == "jpeg" || $ext == "jpg")
    imagejpeg($imgHnd,$file);
  else if ($ext == "gif")
    imageGIF($imgHnd,$file);
  else if ($ext == "png")
    imagePNG($imgHnd,$file);
  imagedestroy($imgHnd);
}

function fileext($file){
  if (strpos($file,".")){
    $file_array = explode(".",$file);
    return strtolower($file_array[count($file_array)-1]);
  }
  else{
    return "";
  }
}

_________________
I believe that every human has a finite number of heart-beats. I don't intend to waste any of mine running around doing exercises.
- Neil Armstrong
Regan
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Sa 08.09.07 17:05 
user profile iconDarkHunter hat folgendes geschrieben:
Wäre es nicht einfacher, aus dem Ursprungsbild mithilfe der PHP-Image-Funktionen ein Thumbnail zu erstellen?

Vollkommen richtig. Die Thumbnail-Erstell-Funktion hat auch den Vorteil: Sollte mal ein Thumbnail nicht verfügbar (rein zufällig gelöscht) oder nicht verwendbar (weil noch von einem anderen Programm verwendet) sein, wird diese automatisch erstellt. Somit brauchst du, als Nutzer, nie mehr ein Thumbnail zu erstellen. Du solltest natürlich entsprechende Schreibrechte haben. Somit ist die Wartung auch viel einfacher. Wenn du ein neues Bild hochlädst, wird das Alte automatisch überschrieben.