Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

PHP fopen

Empfohlene Antworten

Hy!

Ich arbeite auf einem Windows 2000Server mit IIS5 und möchte eine eMail mit mehreren Dateianhängen verschicken. Zum Versenden nutze ich die HTMLMime Class.

Eine eMail mit einem Anhang wird auch korrekt verschickt, sobald ich aber versuche mehr als einen Anhang zu verschicken, bekomme ich folgende Fehlermeldung:

Warning: fopen(" c:\inetpub\wwwroot\documents\informationsmaterial\TEST_2.txt", "rb") - Invalid argument in c:\inetpub\wwwroot\include\HTML_Mail\htmlMimeMail.php on line 162

Die Datei Text_1.txt, welche in dem selben Verzeichniss liegt (mit selben Rechten wie Test_2.txt, wird ohne murren angehängt ... :(

Es scheint immer die zweite Datei zusein die beim fopen Probleme bereitet.

folgender Aufruf soll die Attachmenst anhängen:

for ($j = 0;$j < count($file);$j++)

{

// Dateianhang

$mail->addAttachment($mail->getFile($file[$j]), $my_files[$j]);

echo $my_files[$j],'<br>';

}

der Fehler tritt dann hier auf, beim Fopen:

function getFile($filename)

{

$return = '';

if ($fp = fopen($filename, 'rb')) {

while (!feof($fp)) {

$return .= fread($fp, 1024);

}

fclose($fp);

return $return;

} else {

return false;

}

}

so langsam sehe ich den Wald vor lauter Bäumen nicht mehr ... :D

Hat jemand eine Idee/Tipp ???

DANKE!

TIP(P) :D:

Ersteinmal ist mir aufgefallen, dass deine erste Datei Text_1.txt heißt, die zweite aber Test_2.txt. Liegts vielleicht daran?

Ansonsten versuche folgendes:


for ($j=0; $j < count($file); $j++) {

$mail->getFile( $file[$j] );

}
[/PHP]

Wenn das immer noch nicht funzt, dann liegt der Fehler irgendwo in der funktion getFile().

Dann solltest du mal vor der obigen Schleife das Array umdrehen

[PHP]
$file = array_reverse($file);

und schauen, ob er diesmal wieder nur die erste nimmt. Wenn nämlich nicht, dann hat er ein Problem mit dem Dateinamen.

Gruß

kLeiner_HobBes

P.S. ich würde an deiner Stelle foreach() anstelle von for() nehmen. Ist ein bissel besser zu lesen.;)

  • Autor

Hoppla - da war ein Tippfehler von mir :floet:

Beide Dateien heißen: TEST_*.txt und haben die selben Rechte, liegen im selben Verzeichniss etc pp ...

Habe mal das array umgedreht und ... er stolpert immernoch über TEST_2.txt, TEST_1.txt wird richtig eingelesen und angehängt.

Sehr seltsam, da beide Dateien gleiche Rechte und reinen TXT-Inhalt haben.

Ich verstehe nicht wo da noch ein Unterschied sein könnte der ihn hindert die TEST_2.txt einzulesen.

lass dir das array $file doch mal mit print_r ausgeben und schau dir danach den output als quellcode an. vielleicht ist beim dateinamen/pfad irgendwas dabei, was doch nicht dabei sein sollte

print_r($file);

Gruß

  • Autor

OK - liefert mir folgendes zurück (scheint mir korrekt)

Array ( [0] => c:\inetpub\wwwroot\documents\informationsmaterial\TEST_1.txt

[1] => c:\inetpub\wwwroot\documents\informationsmaterial\TEST_2.txt )

Das scheint leider der Hund nicht begraben zu liegen ...

Tut mir leid, da fällt mir nix konkretes mehr ein. Muss wohl doch irgendwie an der Datei liegen, denn ich hab die getFile()-Funktion mal kopiert und bei mir getestet (mit mehreren Dateien, und sie hat funktioniert).

Schau nochmal genau die Dateien an oder erzeug mal test_3.txt oder sowas und schau, ob bei dieser Datei immer Fehler auftreten.

Viel Erfolg

versuch das ma


fopen("TEST_2.txt", "rb");
[/PHP]

ein relativer pfad reicht aus!

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.