php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
upload funktioniert nicht


 
cng
12-11-2005, 22:47 
 
hallo zusammen

ich habe auf meinem server ein uploader-script, welches die daten nach
/data/upload laden soll. wenn ich nun ein file uploaden will, wird was
gerechnet und dann passiert nichts mehr (kein fehler). wenn ich nun
im verzeichnis schauen gehe, sind da keine daten. wie als ob die daten
nicht gespeichert werden können. chmod 777 upload habe ich im /data
ausgeführt. öffnen/schreiben und lesen ist auch für "andere" gesetzt.
da ich noch anfänger bin, komme ich nicht mehr weiter (forum/google/
scriptseite.

was mache ich falsch?


hier das script:

setup.php
<?php
$ADMIN[RequirePass] = "No"; // Checks to see if upload has a vaild
password
$ADMIN[Password] = "password"; // This is the password if the above
option is Yes
$ADMIN[UploadNum] = "5"; // Number of upload feilds to put on the html
page
$ADMIN[directory] = "/data/upload"; // The directory the files will be

uploaded to (must be chmoded to 777)

?>

uploader.php
<HTML>
<HEAD>
<TITLE>Uploader v1.1 - Powered by: (

http://www.phpscriptcenter.com/uploader.php)</TITLE>

</HEAD>
<BODY BGCOLOR="#ffffff">
<!--

Powered by: Uploader Version 1.1 (

http://www.phpscriptcenter.com/uploader.php)

-->
<?php


require("setup.php");

if($doupload) {

if($ADMIN[RequirePass] == "Yes") {
if($password != "$ADMIN[Password]") {
?>
<P><CENTER><B><FONT FACE="Verdana">Error</FONT></B></CENTER></P>
<P><CENTER><TABLE WIDTH="450" BORDER="0" CELLSPACING="0"
CELLPADDING="0">
<TR>
<TD WIDTH="100%" BGCOLOR="#000000">
<TABLE WIDTH="450" BORDER="0" CELLSPACING="1" CELLPADDING="2">
<TR>
<TD COLSPAN="2" BGCOLOR="#ffffff">
<FONT COLOR="#000000" SIZE="-1" FACE="Verdana">Invalid
Password</FONT></TD>
</TR>
</TABLE></TD>
</TR>
</TABLE></CENTER></P>
<P><CENTER>&nbsp;</CENTER></P>
<P><CENTER>&nbsp;</CENTER></P>
<P><CENTER><FONT SIZE="-2" FACE="Verdana"><B>Powered by:</B>

<A HREF="http://www.phpscriptcenter.com/uploader.php"

TARGET="_blank">Uploader</A> Version 1.1</FONT></CENTER>

</BODY>
</HTML>
<?php
exit();
}
}

$num = 0;
while($num < $ADMIN[UploadNum]) {
$num++;


$picture = "fileup$num"."_name";
$picture1 = $$picture;
$picture2 = "fileup$num";
$picture3 = $$picture2;

if($picture3 != "none") {
$filesizebtyes = filesize($picture3);

$ok = 1;
if($filesizebtyes < 10) {
$error .= "Error uploading (file size lower than 10 bytes) for file
$num<BR>";
$ok = 2;
}



if(file_exists("$ADMIN[directory]/$picture1") OR $ok == 2) {
$error .="File name already exists for file $num<BR>";
} else {
copy ($picture3, "$ADMIN[directory]/$picture1");
$error .="File $num has been uploaded<BR>";
}
}
}

if(!$error) {
$error .= "No files have been selected for upload";
}


?>
<P><CENTER><B><FONT FACE="Verdana">Status</FONT></B></CENTER></P>
<P><CENTER><TABLE WIDTH="450" BORDER="0" CELLSPACING="0"
CELLPADDING="0">
<TR>
<TD WIDTH="100%" BGCOLOR="#000000">
<TABLE WIDTH="450" BORDER="0" CELLSPACING="1"
CELLPADDING="2">
<TR>
<TD COLSPAN="2" BGCOLOR="#ffffff">
<FONT COLOR="#000000" SIZE="-1" FACE="Verdana"><?php echo
$error; ?></FONT></TD>
</TR>
</TABLE></TD>
</TR>
</TABLE></CENTER></P>
<P><CENTER>&nbsp;</CENTER></P>
<P><CENTER>&nbsp;</CENTER></P>
<P><CENTER><FONT SIZE="-2" FACE="Verdana"><B>Powered by:</B>

<A HREF="http://www.phpscriptcenter.com/uploader.php"

TARGET="_blank">Uploader</A> Version 1.1</FONT></CENTER>

</BODY>
</HTML>
<?php
exit();

} else {

$num = 0;
while($num < $ADMIN[UploadNum]) {
$num++;
$html .= "<TR>
<TD WIDTH=\"25%\" BGCOLOR=\"#295e85\">
<FONT COLOR=\"#ffffff\" SIZE=\"-1\" FACE=\"Verdana\">File
$num:</FONT></TD>
<TD WIDTH=\"75%\" BGCOLOR=\"#ffffff\">
<INPUT NAME=\"fileup$num\" TYPE=\"file\" SIZE=\"25\">
</TD> ";
}

?>
<FORM ENCTYPE="multipart/form-data" ACTION="uploader.php"
METHOD="POST">
<P><CENTER><B><FONT
FACE="Verdana">Upload</FONT></B></CENTER></P>

<P><CENTER><TABLE WIDTH="450" BORDER="0" CELLSPACING="0"
CELLPADDING="0">
<TR>
<TD WIDTH="100%" BGCOLOR="#000000">
<TABLE WIDTH="450" BORDER="0" CELLSPACING="1"
CELLPADDING="2">
<TR>
<TD COLSPAN="2" BGCOLOR="#295e85">
<B><FONT COLOR="#ffffff" SIZE="-1" FACE="Verdana">Select
Files</FONT></B></TD>

</TR><?php echo $html; ?>
</TABLE></TD>
</TR>
</TABLE></CENTER></P>
<?php
if($ADMIN[RequirePass] == "Yes") {
?>
<P><CENTER><TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0">
<TR>
<TD WIDTH="100%" BGCOLOR="#000000">
<TABLE WIDTH="300" BORDER="0" CELLSPACING="1"
CELLPADDING="2">
<TR>
<TD WIDTH="33%" BGCOLOR="#295e85">
<B><FONT COLOR="#ffffff" SIZE="-1" FACE="Verdana">Password:</FONT></B></TD> <br>

<TD WIDTH="67%" BGCOLOR="#ffffff">

<INPUT NAME="password" TYPE="password" SIZE="25">
</TD>
</TR>
</TABLE></TD>
</TR>
</TABLE></CENTER></P>
<?php
}
?>
<P><CENTER><INPUT NAME="doupload" TYPE="submit" VALUE="Upload
Files"></CENTER></FORM>
<P><CENTER>&nbsp;</CENTER></P>
<P><CENTER>&nbsp;</CENTER></P>
<P><CENTER><FONT SIZE="-2" FACE="Verdana"><B>Powered by:</B>
<A HREF="http://www.phpscriptcenter.com/uploader.php"
TARGET="_blank">Uploader</A> Version 1.1</FONT></CENTER>
</BODY>
</HTML>
<?php
exit();
}


?>


ich suche ein uploader, mit welchem ich daten jeglicher art hochladen
kann.
es ist egal, ob ich pro upload eine oder fünf dateien uploaden kann.

falls jemand ein solches script kennt, würde ich es gerne ausprobieren


ich danke euch für eure hilfe.

gruss
michael

 
asp2php
12-11-2005, 23:05 
 
1. LESEN (http://www.php-resource.de/forum/showthread.php?s=&threadid=50454) und befolgen, Stichwort: Scrollbalken

2. register_globals ist dein Freund

3. Wenn du suchst, dann falsches Forum, also entscheide dich: Scriptfehler beheben oder neues Script suchen?

 
cng
12-11-2005, 23:41 
 
danke für dein post

zu 1 - ok, habs gelesen und kapiert. werd drauf achten

zu 2 - ist register_globals wirklich so schlecht?? hab da gelesen, dass man
es mit extract ($HTTP_POST_VARS); einschalten kann, nur habe ich absolut
keine idee, wo ich es bei diesem script einbauen müsste. könntest du mit helfen?

zu 3 - ich bin froh, wenn ich eines habe welches funktioniert. wenn ich das
problem bei diesem script lösen kann, super..

 
asp2php
12-11-2005, 23:53 
 
zu 1. und warum änderst du dein Posting nicht? Ich sehe den Scrollbalken immer :motz:

zu 2. suche nach register_globals, das Thema taucht mehrmals im Monat auf.

zu 3. dazu musst du zumindest (aktuelles) PHP-Grundkenntnis besitzen.

 
cng
14-11-2005, 16:31 
 
leider komm ich nicht drauf. ich habe ein formular,
welches funktiniert, aber nur mit einer datei..

da ist $_POST["submit"] enthalten. aber wo ich das nun in meinem
script einbauen muss, habe ich noch nicht herausgefunden..

 
cng
23-11-2005, 21:20 
 
hallo nochmals

leider hab ich dieses problem bis jetzt nicht lösen können.
ich habe nun diverse posts gelesen, aber meistens sind die
auf andere probleme bezogen. ich dachte, dass es irgend etwas mit
dem $_POST["submit"] zu tun haben müsste. ich schaffte es aber
nicht.

ich bitte euch, mir zu helfen. wo und wie muss ich es anstellen, damit
das obengenannte script funktioniert?

merci für eure hilfe!

 
cng
27-11-2005, 21:26 
 
kann mir wirklich niemand helfen?
oder habe ich irgendwas übersehen?

wie/wo kann ich in diesem script die register_globals einschalten?

 
ghostgambler
27-11-2005, 21:38 
 
<?php
if (isset($HTTP_POST_VARS))
extract ($HTTP_POST_VARS);
?>

an den Anfang der Datei

 
cng
27-11-2005, 22:26 
 
danke ghostgambler

leider geht das nicht. wenn ich den code an den anfang der datei
setze, bekomme ich die fehlermeldungen welcher im quellcode
definiert ist. setze ich den code an andere stellen, wird so wie
es scheint die daten hochgeladen (bin mir aber nicht sicher).
auf dem server sehe ich dann aber nichts. die bereichtigung des
ordners (lesen, öffnen und schreiben) habe ich auf ersteller, gruppe
und sonstige gesetzt.

 
Smartsoul
28-11-2005, 16:36 
 
Läuft das auf deinem eigenen Server oder bei deinem Provider?

Hatte neulich mal ein ähnliches Problem und musste meine Files in einen ganz bestimmten Ordner (in meinem Fall "phptmp") laden und von dort dann in den von mir gewünschten Zielordner verschieben.

Mit

move_uploaded_file

ging das dann prima!

 
cng
28-11-2005, 16:54 
 
ich habe ein eigener server im bastelraum stehen.
linux - apache - php - mysql

auch hier im geschäft habe ich auf winXP einen apache
aufgesetzt.

es funktioniert auf beiden rechnern nicht...

folgendes script geht aber ( ist aber umständlich)
http://www.iphosting.ch/index.php?content=schnipsel&id=64

 
Smartsoul
28-11-2005, 17:24 
 
Kenne mich mit Servern noch weniger aus als mit PHP :cool:

... aber bei mir war es so, dass ich außerhalb meines Webverzeichnisses in den phptmp laden musste, weil die Servereinstellungen es nicht zuließen, direkt in einen Ordner innerhalb des Webs zu laden.

Und zwar egal welche Rechte ich dort vergeben hatte.

Hatte wie du auch nie eine Fehlermeldung und der Ordner (innerhalb des Webs) war trotzdem immer leer.

Nachdem ich in dem Skript

copy ($picture3, "$ADMIN[directory]/$picture1");

durch

move_uploade_file ($picture3,
"$ADMIN[directory]/$picture1");

ersetzt hatte, kamen die Files an.

 
cng
28-11-2005, 17:46 
 
das werde ich mal testen. vieleicht - wenn meine kinder schlafen -
reicht es heute noch, sonst jedenfalls morgen.

merci für die antwort..

 
Smartsoul
28-11-2005, 17:51 
 
Lass dir ein nettes Schlaflied oder eine wahnsinnig tolle Geschichte einfallen, dann wird es schon werden :)

 
cng
29-11-2005, 07:51 
 
leider hat's noch nicht funktioniert.... aber du hast recht, es könnte
sein, dass es das ist. das script, welches nämlich funktioniert,
hat folgenden teil enthalten

if (move_uploaded_file
(
$_FILES["file"]["tmp_name"][$i],
$upload_dir . "/" . $_FILES["file"]["name"][$i])
)
echo "Die Datei Nr. $a wurde erfogreich hochgeladen!<br>\n";
else
echo "Fehler beim Hochladen der Datei Nr. " . $a . "!<br>\n";
}
else
echo "Datei Nr. $a Fehler: keine Datei ausgewählt\n<br>";
}
}
break;


leider verstehe ich nicht viel von php... ich konnte es nicht umsetzen...

 
Smartsoul
29-11-2005, 11:49 
 
Wenn das eine Skript bei dir funktioniert hat, versuch doch mal die Schleife von dem Skript ganz oben um dein funktionierendes Skript drumrum zu bauen.

 
cng
29-11-2005, 12:38 
 
das habe ich kurz versucht... ist für mich etwas kompliziert

das ist das script:

<?php
//Zielverzeichniss. Ohne / am Schluss
$upload_dir = "C:/Program Files/Apache Group/Apache2/htdocs/upload/data";
//---------------------------------------------------------------------------

if (isset ($_GET["step"]))
$step = $_GET["step"];
else
$step = 1;

switch ($step)
{
//---------------------------------------------------------------------------
//Schritt Eins
case 1:
?>
<form name="form1" method="post" action="<?php echo $_SERVER["PHP_SELF"] ?>?step=2">

<table width="480" border="0" cellspacing="1" cellpadding="2">

<tr valign="top">
<td width="250" bgcolor="#295e85">
<strong><font color="#FFFFFF" size="2" face="Verdana, Arial,
Helvetica, sans-serif">&nbsp;
1. Anzahl Dateien angeben: </font></strong></td>
<td width="251" bgcolor="#295e85">
<input name="ii" type="text" id="ii" size="8">
<font color="#FF0000" size="2"><strong>Eine Zahl ( 1 - 10 )
eingeben </strong></font> </td>
</tr>
<tr valign="top">
<td width="250" bgcolor="#295e85">
<strong><font color="#FFFFFF" size="2" face="Verdana, Arial,

Helvetica, sans-serif">&nbsp; 2. Verzeichnis erstellen...</font>
</strong></td>
<td bgcolor="#295e85">
<input name="step2" type="submit" id="step2" value="create
it"></td>
</tr>
</table>
</form>
<?php
break;
//Schritt Eins Ende
//---------------------------------------------------------------------------
//Schritt Zwei
case 2:
if (isset ($_POST["step2"]))
{
$ii = $_POST["ii"];
?>
<form action="<?php echo $_SERVER["PHP_SELF"] ?>?step=3"

method="post" enctype="multipart/form-data" name="form1">
<table bgcolor="#000000" width="480" border="0" cellspacing="1" cellpadding="2">
<tr valign="top">
<td width="250" bgcolor="#295e85">
<strong><font color="#FFFFFF" size="2" face="Verdana, Arial,

Helvetica, sans-serif">3. Dateien auswählen:</font>
</strong></td>
<td bgcolor="#295e85">&nbsp; </td>
<td bgcolor="#295e85">&nbsp;</td>
</tr>
<?php
for ($i=1; $i <= $ii; $i++)
{
echo "<tr valign=\"top\">\n";
echo " <td width=\"250\" bgcolor=\"#295e85\">\n";
echo " <strong><font color=\"#FFFFFF\">File $i:</font></strong>\n";
echo " </td>\n";
echo " <td bgcolor=\"#FFFFFF\">\n";
echo " <input name=\"file[]\" type=\"file\" id=\"file[]\">\n";
echo " </td>\n";
echo " <td bgcolor='#295e85'>&nbsp;</td>";
echo "</tr>\n";
}
?>

<tr valign="top">
<td width="250" bgcolor="#295e85">
<strong><font color="#FFFFFF" size="2" face="Verdana, Arial,

Helvetica, sans-serif">4. Dateien hochladen:</font>
</strong></td>
<td bgcolor="#295e85">
<input name="step3" type="submit" id="step3" value="upload"></td>
<td bgcolor="#295e85">&nbsp;</td>
</tr>
</table>
</form>
<?php
}
break;
//Schritt Zwei Ende
//---------------------------------------------------------------------------
//Schritt Drei
case 3:
if (isset ($_POST["step3"]))
{
//Hier Zählen wir die Dateien. (-1 weil das Array bei [0] beginnt!)

$count = (count ($_FILES["file"]["name"]))-1;

//Die Schleife um alle Dateifelder zu durchlaufen
for ($i = 0; $i <= $count; $i++)
{
//Um Datei Nr. 1, Datei Nr. 2, usw anzeigen zu können!
$a = $i + 1;
//Falls kein Error besteht!
if ($_FILES["file"]["error"][$i] == 0)
{
//Falls die Dateien hochgeladen werden konnten
if (move_uploaded_file
(
$_FILES["file"]["tmp_name"][$i],
$upload_dir . "/" . $_FILES["file"]["name"][$i])
)
echo "Die Datei Nr. $a wurde erfogreich hochgeladen!<br>\n";

else
echo "Fehler beim Hochladen der Datei Nr. " . $a . "!<br>\n";

}
else
echo "Datei Nr. $a Fehler: keine Datei ausgewählt\n<br>";

}
}
break;
//Schritt Drei Ende
}
?>


nicht ganz einfach gel :)

ich verwende als übergang dieses script, und baue das gerüst

um den code herum etwas nach meinem geschmack :D

 
wahsaga
29-11-2005, 12:39 
 
Beseitige den Querscrollbalken, sonst landet der Thread auf dem Müll.

 
cng
29-11-2005, 12:47 
 
@ wahsaga - besser? bei 1280x1024 ist es nicht einfach
abzuschätzen.....

 
Smartsoul
29-11-2005, 13:07 
 
Du musst jede Zeile umbrechen, in der noch kein Zeilenumbruch drin ist.

Zeilen, die von dem Eingabefeld scheinbar umgebrochen wurden, sind es in Wirklichkeit noch NICHT.

Wenn du den Code nicht breiter werden lässt als das Eingabefeld, hat keiner mehr Probleme.


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:48 Uhr.