webForumDet fria alternativet

Problem att ladda upp txt-fil

PHP

0 svar · 355 visningar · startad av aasah

Medlem sedan mars 20034 471 inlägg
Frågan#1

I mitt admin-gränssnitt (som bara jag ser och kan använda) vill jag ladda upp en txt-fil som innehåller nya frågesportfrågor. Tidigare har jag först lagt upp filen på servern, men av praktiska skäl skulle jag hellre ladda upp den när jag läser in innehållet. Men av någon anledning verkar det inte fungera...

<!-- Formen: (som även innehåller hidden fält med tidigare postade formfältsvärden) -->
<table> <form method="post" name="U" enctype="multipart/form-data" action="http://.../readQ.php" > 
<tr><td colspan="2"> 
   <input type="hidden" name="Name" value="My Quiz"> 
   <input type="hidden" name="Descr" value="jhgjhgjhggj"> 
   <!-- .... --> </td></tr> 
<tr><td>Quiz File</td>
<td> <input type="hidden" name="MAX_FILE_SIZE" value="30000" /> 
<input name="puzzlefile" type="file"> (The file MUST be a text file.)</td></tr>
<tr><td colspan=2> 
<input type="submit" name="submitNewPuzzle" value="Upload" ></td></tr></form></table>

Tas emot med anrop till:

function checkSecondFormQuizOK() {    
   $error = "";
   echo "************<br>";
   if (isSet($_FILES))
      viewArr($_FILES);
   else echo '$_FILES not set<br>';
   echo "************<br>";

   foreach($_POST as $key => $val)
      $_POST[$key] = trim($val);

   if (!wasChosen("MAX_FILE_SIZE", 30000)) {
      $error .= "Something's wrong with the file upload, bugging out.";
   }
   if (!isSet($_FILES['puzzlefile'])) {
      $error .= "No file uploaded.";
   }
   else {
      if ($_FILES["puzzlefile"]["error"] != 0 ||
       strpos($_FILES["puzzlefile"]["name"], ".txt") !== strlen($_FILES["puzzlefile"]["name"]) - 4) {
         echo strpos($_FILES["puzzlefile"]["name"], ".txt"). ' != '.strlen($_FILES["puzzlefile"]["name"]) - 4;
         $error .= "This is no text file.";
      }
   }
//Fler koller som går igenom övriga fält
   if ($error !== "")
      viewArr($_POST);  //I princip print_r men med lite extra avgränsningar och radbrytningar
   echo $error;
}

Ger Följande svar på en textfil:

Sidan skrev skrev:

************

Array: **********
puzzleFile => Array
**************

************

Array: **********
Name => My Quiz
Descr => jhgjhgjhggj
//... fler andra fält
MAX_FILE_SIZE => 30000
submitNewPuzzle => Upload
**************

No file uploaded.

Varför? Vad är fel?

249 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)