![]() |
[PHP] Bild via E-Mail schicken
Hi,
ich möchte gerne, dass wenn ich die URL ![]() Nun weiß ich wie man E-Mails schickt und wie man Dateien hochlädt.
Code:
Damit kann ich Dateien auf den Server hochladen. Wie ich E-Mails verschicke, weiß ich auch. Wie würde sich das am Besten kombnieren lassen? Kann ich die Datei vom PC nicht gleich per Anhang als Mail schicken oder muss ich die JPG vorher erst hochladen?
copy($thefile,"/pfad/zum/neuen/direktory/name.endung");
Wie lässt sich das am Schnellsten realisieren? |
Re: [PHP] Bild via E-Mail schicken
bin mir doch nicht sicher... :wiejetzt:
|
Re: [PHP] Bild via E-Mail schicken
Zitat:
:dp: |
Re: [PHP] Bild via E-Mail schicken
PHP läuft auf dem Webserver und kann daher wohl auch nur Dateien versenden, die sich auch auf diesem befinden. Also müsstest Du das Bild erst hochladen und dann verschicken. Finde ich ein bisschen umständlich, Du nicht?
@kujin1000: was sagt Dein Arzt, besteht noch Hoffnung auf Heilung? |
Re: [PHP] Bild via E-Mail schicken
Ja, bisschen umständlich. Gibts es denn nichts einfacheres? Deshalb frage ich ja ... :roll:
|
Re: [PHP] Bild via E-Mail schicken
*Ääähhh*... Thunderbird z.B.?
|
Re: [PHP] Bild via E-Mail schicken
Ich möchte das aber von jedem PC aus aufrufen über die URL. Die Win95 Rechner in der Schule haben kein Thunderbird. ^^
Also eine Alternative in Verbindung mit PHP gibt es nicht? Naja ... dann mach ich mich mal ans Werk ... ^^ |
Re: [PHP] Bild via E-Mail schicken
Wie schon gesagt, Pic hochladen und dann per mail() vom Server aus versenden.
[edit] BTW: anstatt copy besser move_uploaded_file verwenden ( ![]() |
Re: [PHP] Bild via E-Mail schicken
Er will nicht uploaden. Jetzt bitte nicht auslachen. :lol:
Code:
Verzeichnis test hat CHMOD 777 und der Serverpfad ist richtig (habe ich über PHP_Info ausgelesen)
<?php
move_uploaded_file('C:\Dokumente%20und%20Einstellungen\Laptop\Desktop\bild.jpg','/srv/www/vhosts/pyrgo.de/httpdocs/php/test/test.jpg'); ?> Die Datei existiert auch mit Sicherheit. Woran könnte es liegen? EDIT: file_uploads ON upload_max_filesize 2M (Datei hat 260kb) upload_tmp_dir no value (liegts daran vll?) |
Re: [PHP] Bild via E-Mail schicken
%20 anstelle eines Leerzeichen funktioniert in PHP nicht.
Code:
<?php
move_uploaded_file(rawurldecode('C:\Dokumente%20und%20Einstellungen\Laptop\Desktop\bild.jpg'),'/srv/www/vhosts/pyrgo.de/httpdocs/php/test/test.jpg'); ?> ![]() Wie wäre es mal mit einem PHP Highlighter? :stupid: Mit freundlichen Grüßen, Valle |
Re: [PHP] Bild via E-Mail schicken
Das ist nicht das Problem.
Es funzt weder rawurldecode('C:\Dokumente%20und%20Einstellungen\L aptop\Desktop\bild.jpg') noch 'C:\Dokumente und Einstellungen\Laptop\Desktop\bild.jpg' noch 'C:\Dokumente%20und%20Einstellungen\Laptop\Desktop \bild.jpg' In dieser Hinsicht probiere ich eigentlich immer alle Varianten aus. |
Re: [PHP] Bild via E-Mail schicken
Ich sehe grade, sind diese zwei Verzeichnisse nicht etwas widersprüchlich? :gruebel:
C:\Dokumente%20und%20Einstellungen\Laptop\Desktop\ bild.jpg' '/srv/www/vhosts/pyrgo.de/httpdocs/php/test/test.jpg' Du kannst ja auch mal mit is_dir($dir) überprüfen, ob beide Verzeichnisse vorhanden sind, bzw. ob sie existieren. Ich denke, dass mindestens eines von beiden nicht gehen kann, da es ja zwei völlig unterschiedliche Varianten sind. Du kannst auch mal versuchen, zu checken, ob is_writable() funktioniert. Außerdem glaube ich, dass der erste Parameter eigentlich immer $_FILES['userfile']['tmp_name'] sein müsste. Oder ist das jetzt hier nur ein Beispiel? Mit freundlichen Grüßen, Valle |
Re: [PHP] Bild via E-Mail schicken
Also. Erstmal habe ich ein paar Tests gemacht:
Code:
Er gibt mir aus:
<?php
if(is_dir('C:\Dokumente und Einstellungen\Laptop\Desktop')){echo 'Lokaler Pfad existiert. ';} if(is_dir('/srv/www/vhosts/pyrgo.de/httpdocs/php/test')){echo 'Serverpfad existiert. ';} if(is_writable('/srv/www/vhosts/pyrgo.de/httpdocs/php/test')){echo 'Serverpfad ist beschreibbar. ';} //move_uploaded_file('C:\Dokumente und Einstellungen\Laptop\Desktop\ausweis.jpg','/srv/www/vhosts/pyrgo.de/httpdocs/php/test/test.jpg'); ?> Serverpfad existiert. Serverpfad ist beschreibbar. Nur den lokalen Pfad mag er anscheinend nicht. Das mit dem $_FILES['userfile']['tmp_name'] habe ich auch gelesen. Aber ich wollte diesen ganzen Schnickschnack nicht und dachte mir so würde es auch gehen. Wie müsste ich es denn machen?
Code:
So?
$_FILES['userfile'] = 'C:\Dokumente und Einstellungen\Laptop\Desktop\ausweis.jpg';
move_uploaded_file($_FILES['userfile']['tmp_name'],'/srv/www/vhosts/pyrgo.de/httpdocs/php/test/test.jpg'); |
Re: [PHP] Bild via E-Mail schicken
Zitat:
|
Re: [PHP] Bild via E-Mail schicken
Hm ... das ist blöd. :( Es funktioniert zwar, aber eben nicht so, wie ich es möchte.
Code:
Er lädt es hoch, wenn ich auf Durchsuchen klicke, ein Bild auswählen und dann auf Submit drücke .... Er soll aber den Pfad schon mit dem Aufruf kennen. Es hat nichts gebracht, dass ich hier (<input type="file" name="userfile">) mit Value den Pfad reingeschrieben habe.
<?php
echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post" enctype="multipart/form-data"><input type="file" name="userfile"><input type="submit" value=""></form>'; move_uploaded_file($_FILES['userfile']['tmp_name'],'/srv/www/vhosts/pyrgo.de/httpdocs/php/test/test.jpg'); ?> Es muss doch auch ohne gehen ... :gruebel: |
Re: [PHP] Bild via E-Mail schicken
Ach komm, so schwer ist es doch nicht. :zwinker:
Code:
Ist die Frage, wie du ein Bild als Anhang verschickst eigentlich geklärt?
<?
if (isset($_FILES['userfile'])) { move_uploaded_file($_FILES['userfile']['tmp_name'], "/irgend/ein/pfad/datei.endung"); mail(/* ... */); } else { echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post" enctype="multipart/form-data"><input type="file" name="userfile"><input type="submit" value=""></form>'; } ?> Mit freundlichen Grüßen, Valle |
Re: [PHP] Bild via E-Mail schicken
Code:
if ($_SERVER['REQUEST_METHOD']=='POST')
{ if (!(stristr($_FILES["Fotofile"]["type"],"image/"))||($_FILES["Fotofile"]["size"] > 5000000)) { $foto_fehler=true; } else { $to = "sdfgdsfg@dsfgdsfg.dfgsdfg"; $subject .= " dsgdsg: " ; $headers = "From: Webformular <hjgkghk@hgjk.hgjk>" . "\r\n"; $headers .= "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type: " . mime_content_type($_FILES["Fotofile"]["tmp_name"]) . "\r\n"; $headers .= "Content-Transfer-Encoding: base64" . "\r\n"; $message = base64_encode(file_get_contents($_FILES["Fotofile"]['tmp_name'])) . "\r\n"; unlink($_FILES["Fotofile"]['tmp_name']); mail($to, $subject, $message, $headers); } } |
Re: [PHP] Bild via E-Mail schicken
Zitat:
In der PHP soll dann die Datei hochgeladen, ohne die erst auswählen zu müssen. Allein mit dem Aufrufen des Links soll die Datei schon hochgeladen werden ohne den Duchsuchenbutton, etc. |
Re: [PHP] Bild via E-Mail schicken
Zitat:
Eine andere Lösung kann ich mir nicht vorstellen, da der PHP-Server ja (zum Glück) keinen Zugriff auf den Client-PC hat. Mit freundlichen Grüßen, Valle |
Re: [PHP] Bild via E-Mail schicken
Hm ... da ich die URL mit Delphi aufrufe, könnte ich die seite auch mit Delphi ausfüllen.
Hey ... du hast mich gerade auf die Idee gebracht. ;) THX |
Re: [PHP] Bild via E-Mail schicken
Mist. Das geht ja gar nicht ....
Siehe: ![]() Jetzt sind wir wieder am Anfang. Jemand noch eine bessere Idee? Auf JS will ich eigentlich nicht zurückgreifen. Nicht jeder PC hat Javascript und da kenn ich mich auch null aus. |
Re: [PHP] Bild via E-Mail schicken
Zitat:
Notfalls eben mit idHTTP oder selber machen mit TClientSocket. So schwer ist das HTTP Protokoll nicht. ;) Javascript kann dir mit Sicherheit irgendwer (vielleicht auch ich) machen. Mit freundlichen Grüßen, Valle |
Re: [PHP] Bild via E-Mail schicken
Hast du dir mal den Thread angeguckt, den ich verlinkt habe? Da steht nämlich, dass aus Sicherheitsgründen diese Funktion deaktiviert wurde, sodass man nicht mehr so leicht uploaden kann.
Habe Folgendes gefunden:
Delphi-Quellcode:
Unit habe ich aus dem Thread:
procedure TForm1.Button1Click(Sender: TObject);
var MultiPartFormDataStream: TMsMultiPartFormDataStream; HttpServer, Response: String; begin MultiPartFormDataStream := TMsMultiPartFormDataStream.Create; try httpMain.Request.ContentType := MultiPartFormDataStream.RequestContentType; MultiPartFormDataStream.AddFile('userfile', 'C:\Dokumente und Einstellungen\Laptop\Desktop\ausweis.jpg', ''); MultiPartFormDataStream.PrepareStreamForDispatch; MultiPartFormDataStream.Position := 0; Response := httpMain.Post('http://www.*******.de/temp/php/index.php', MultiPartFormDataStream); finally MultiPartFormDataStream.Free; end; ![]() Nur leider funktioniert es bei mir nicht ... :( Er lädt nichts hoch, gibt aber auch keinen Fehler aus. :cry: |
Re: [PHP] Bild via E-Mail schicken
Zitat:
![]() Mit freundlichen Grüßen, Valle |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz