PHP bir değişken numune içinde bir global değişken yerleştirebilirsiniz: $ isim = $ _FILES ["dfile"];

4 Cevap php

Burada metin ve görüntüleri yüklemek için bir yönetici paneli oluşturmak için çalışıyoruz html sayfası. Html sayfası, html başvuru için sadece burada kırık php sayfası iyi çalışıyor.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<title>Administartor Panel</title>
<head>
<link rel="stylesheet" type="text/css" href="admin.css" />
</head>
<body>
<h1>Heritage House Administartor Panel</h1>
<br/>
<h2>
<a href="#eone">Event One</a>&nbsp;
<a href="#etwo">Event Two</a>&nbsp;
<a href="#ethree">Event Three</a>&nbsp;
<a href="#efour">Event Four</a>&nbsp;
<a href="#efive">Event Five</a>&nbsp;
<a href="#esix">Event Six</a>&nbsp;
</h2>
<br/>
<table>
<tr>
<td id="eone">
<br/>
<p>Event One</P>
<p> Please name the picture file1 before uploading.</p>
<form action="upload.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="afile" id="afile" />
<br />
<input type="submit" name="submit" value="submit" />
</form>
<form action="WriteTxt1.php" method="post"
enctype="multipart/form-data">
<label for="file">Input Text for artical One:</label>
<textarea rows="25" cols="100" name="content">
</textarea>
<br />
<input type="submit" name="submit" value="Save" />
</form>
</td>
</tr>
<tr>
<td id="etwo">
<p >Event Two</P>
<p> Please name the picture file2 before uploading.</p>
<form action="upload.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="bfile" id="bfile" />
<br />
<input type="submit" name="submit" value="submit" />
</form>
<form action="WriteTxt2.php" method="post"
enctype="multipart/form-data">
<label for="file">Input Text for artical Two:</label>
<textarea rows="25" cols="100" name="content">
</textarea>
<br />
<input type="submit" name="submit" value="Save" />
</form>
</td>
</tr>
<tr>
<td id="ethree" >
<p >Event Three</P>
<p> Please name the picture file3 before uploading.</p>
<form action="upload.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="cfile" id="cfile" />
<br />
<input type="submit" name="submit" value="submit" />
</form>
<form action="WriteTxt3.php" method="post"
enctype="multipart/form-data">
<label for="file">Input Text for artical Three:</label>
<textarea rows="25" cols="100" name="content">
</textarea>
<br />
<input type="submit" name="submit" value="Save" />
</form>
</td>
</tr>
<tr>
<td id="efour" >
<p >Event Four</P>
<p> Please name the picture file4 before uploading.</p>
<form action="upload.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="dfile" id="dfile" />
<br />
<input type="submit" name="submit" value="submit" />
</form>
<form action="WriteTxt4.php" method="post"
enctype="multipart/form-data">
<label for="file">Input Text for artical Four:</label>
<textarea rows="25" cols="100" name="content">
</textarea>
<br />
<input type="submit" name="submit" value="Save" />
</form>
</td>
</tr>
<tr>
<td id="efive" >
<p >Event Five</P>
<p> Please name the picture file5 before uploading.</p>
<form action="upload.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="efile" id="efile" />
<br />
<input type="submit" name="submit" value="submit" />
</form>
<form action="WriteTxt5.php" method="post"
enctype="multipart/form-data">
<label for="file">Input Text for artical Five:</label>
<textarea rows="25" cols="100" name="content">
</textarea>
<br />
<input type="submit" name="submit" value="Save" />
</form>
</td>
</tr>
<tr>
<td id="esix" >
<p >Event Six</P>
<p> Please name the picture file6 before uploading.</p>
<form action="upload.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="ffile" id="file6" />
<br />
<input type="submit" name="submit" value="submit" />
</form>
<form action="WriteTxt6.php" method="post"
enctype="multipart/form-data">
<label for="file">Input Text for artical Six:</label>
<textarea rows="25" cols="100" name="content">
</textarea>
<br />
<input type="submit" name="submit" value="Save" />
</form>
</td>
</tr>
</body>
</html>

trying to rename the files uploaded based on which form they come from on the html page afile,bfile etc. I have tried this php file a number of different ways. I can get it to work when I eliminate the large IF statement and make 6 separate files for uploading but I was hoping to make it one file This is what I believe makes it fail moving the global variables in to normal vars?

        <?php
    //This function separates the extension from the rest of the file name and returns it
    function findexts ($filename)
    {
    $filename = strtolower($filename) ;
    $exts = split("[/\\.]", $filename) ;
    $n = count($exts)-1;
    $exts = $exts[$n];
    return $exts;
    } 
    //This if statement assigns the new file name to a variable and displays a message.
    if (file_exists($_FILES["afile"]["tmp_name"]))
      {
      $new = "file1.";
      $type = $_FILES ["afile"] ["type"];
      $size = $_FILES ["afile"] ["size"];
      $error = $_FILES ["afile"] ["error"];
      $name = $_FILES ["afile"] ["name"];
      $tmpname = $_FILES["afile"]["tmp_name"];
      $names = "afile";
      echo "file1 Uploaded <br />";
      }
    elseif (file_exists($_FILES["bfile"]["tmp_name"]))
      {
      $new = "file2.";
      $type = $_FILES ["bfile"] ["type"];
      $size = $_FILES ["bfile"] ["size"];
      $error = $_FILES ["bfile"] ["error"];
      $name = $_FILES ["bfile"] ["name"];
      $tmpname = $_FILES["bfile"]["tmp_name"];
      $names = "bfile";
      echo "file2 Uploaded <br />";
      }
    elseif (file_exists($_FILES["cfile"]["tmp_name"]))
      {
      $new = "file3.";
      $type = $_FILES ["cfile"] ["type"];
      $size = $_FILES ["cfile"] ["size"];
      $error = $_FILES ["cfile"] ["error"];
      $name = $_FILES ["cfile"] ["name"];
      $tmpname = $_FILES["cfile"]["tmp_name"];
      $names = "cfile";
      echo "file3 Uploaded <br />";
      }
    elseif (file_exists($_FILES["dfile"]["tmp_name"]))
      {
      $new = "file4.";
      $type = $_FILES ["dfile"] ["type"];
      $size = $_FILES ["dfile"] ["size"];
      $error = $_FILES ["dfile"] ["error"];
      $name = $_FILES ["dfile"] ["name"];
      $tmpname = $_FILES["dfile"]["tmp_name"];
      $names = "dfile";
      echo "file4 Uploaded <br />";
      }
    elseif (file_exists($_FILES["efile"]["tmp_name"]))
      {
      $new = "file5.";
      $type = $_FILES ["efile"] ["type"];
      $size = $_FILES ["efile"] ["size"];
      $error = $_FILES ["efile"] ["error"];
      $name = $_FILES ["efile"] ["name"];
      $tmpname = $_FILES["efile"]["tmp_name"];
      $names = "efile";
      echo "file5 Uploaded <br />";
      }
    elseif (file_exists($_FILES["ffile"]["tmp_name"]))
      {
      $new = "file6.";
      $type = $_FILES ["ffile"] ["type"];
      $size = $_FILES ["ffile"] ["size"];
      $error = $_FILES ["ffile"] ["error"];
      $name = $_FILES ["ffile"] ["name"];
      $tmpname = $_FILES["ffile"]["tmp_name"];
      $names = "ffile";
      echo "file6 Uploaded <br />";
      }

    //This applies the function to our file
    $ext = findexts ($_FILES ['$names'] ['name']) ;
        //This assigns the subdirectory you want to save into.
        $targett = "forms/upload/";
        //This combines the directory, the new file name, and the extension
        $target = $targett . $new.$ext; 
        // makes sure image meets specs
    if ((($type == "image/gif")
    || ($type == "image/jpeg")
    || ($type == "image/pjpeg"))
    && ($size < 2000000))
      {
      if ( $error > 0)
        {
        echo "Return Code: " . $error . "<br />";
        }
      else
        {
        echo "Thank You! <br />";
        }
    //saves uploaded file
        if (file_exists("forms/upload/" . $name))
          {
          move_uploaded_file( $tmpname, $target);
          echo $name . " Old File Over Written. ";
          }
        else
          {
          move_uploaded_file( $tmpname, $target);
          echo "Stored in: " . "forms/upload/" . $name;
          }   
?>

Belki de elseif deyimi bozuldu?

Ben kapalı bir şekilde yaşıyorum burada vakit harcadığım için özür işaretlemek yüzden ben sadece bir hafta için bu php malzeme ile oynarken edilmiştir.

Ben elseif deyimi onları placeing daha globalleri move_uploaded_file($_FILES["file"]["tmp_name"], $target); ile 6 işlevleri yapmayı deneyin, belki işe yarayabilir?

Bu çalışma php sayfanın bir kopyası

<?php
//This function separates the extension from the rest of the file name and returns it
function findexts ($filename)
{
$filename = strtolower($filename) ;
$exts = split("[/\\.]", $filename) ;
$n = count($exts)-1;
$exts = $exts[$n];
return $exts;
} 
//This applies the function to our file
$ext = findexts ($_FILES['afile']['name']) ;
    //This line assigns a random number to a variable. You could also use a timestamp here if you prefer.
    $new = "file1.";
    //This assigns the subdirectory you want to save into... make sure it exists!
    $targett = "forms/upload/";
    //This combines the directory, the random file name, and the extension
    $target = $targett . $new.$ext; 
if ((($_FILES["afile"]["type"] == "image/gif")
|| ($_FILES["afile"]["type"] == "image/jpeg")
|| ($_FILES["afile"]["type"] == "image/pjpeg"))
&& ($_FILES["afile"]["size"] < 2000000))
  {
  if ($_FILES["afile"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["afile"]["error"] . "<br />";
    }
  else
    {
    echo "Upload: " . $_FILES["afile"]["name"] . "<br />";
    echo "Type: " . $_FILES["afile"]["type"] . "<br />";
    echo "Size: " . ($_FILES["afile"]["size"] / 1024) . " Kb<br />";
    echo "Temp file: " . $_FILES["afile"]["tmp_name"] . "<br />";

    if (file_exists("forms/upload/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["afile"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["afile"]["tmp_name"], $target);
      echo "Stored in: " . "forms/upload/" . $_FILES["afile"]["name"];
      }
    else
      {
      echo "Invalid file";
      }

4 Cevap

Bu tekrarlanan kod çok bir halt olduğunu! Eğer gerçekten 6 ayrı HTML formları ihtiyacınız var mı? Neden olayı seçmek için bir açılan ile, bir formu yok?

<select name="event">
    <option value="afile">Event One</option>
    <option value="bfile">Event Two</option>
    ...etc
</select>

Girişi için kullanın:

<input type="file" name="userfile" id="file" />

Sonra yerine if / else cümleleri sizin uzun ki, sadece böyle bir şey yapın:

if ( isset($_POST['event']) && file_exists($_FILES['userfile']['tmp_name']) )
{
    // base this code on the value of $_POST['event']
}

Belki kullanmalısınız

isset($_FILES["afile"])

yerine

file_exists($_FILES["afile"]["tmp_name"])

- Düzenle

başlığında soru cevap: örneğin $ _FILES ["afile"] ayarlandığında, eğer bu mümkün. Eğer yeni bir değişken bir dizi olacak bu şekilde.

Aslında çalışma çok yakın.

//Uses $names as a key in $_FILES - no single quotes for variable expansion....
$ext = findexts($_FILES[$names]['name']);

Ben de döngü çeşit yerine yapıştırılan kod bir grup ile büyük bir elseif kullanarak önerebiliriz. İki iyileştirmeler kullandı: foreach $ _FILES dizisinde, ve extract

foreach ($_FILES as $fileKey => $values)
{
  // Sets $type, $size, $name, $tmp_name, $error
  extract($values);
  //This applies the function to our file
  $ext = findexts($name) ;

  //This assigns the subdirectory you want to save into.
  $targett = "forms/upload/";
  //This combines the directory, the new file name, and the extension
  $target = $targett . $new.$ext; 
  // makes sure image meets specs
  if ((($type == "image/gif")
    || ($type == "image/jpeg")
    || ($type == "image/pjpeg"))
    && ($size < 2000000))
  {
    if ($error > 0)
    {
      echo "Return Code: " . $error . "<br />";
    }
    else
    {
      echo "Thank You! <br />";
    }
    //saves uploaded file
    if (file_exists("forms/upload/" . $name))
    {
      move_uploaded_file( $tmp_name, $target);
      echo $name . " Old File Over Written. ";
    }
    else
    {
      move_uploaded_file( $tmp_name, $target);
      echo "Stored in: " . "forms/upload/" . $name;
    }         
  }
}

Ben sadece tamamen benim soruya kısa yanıt anda şaşırdım benim soruların yanıtlarını sola herkese teşekkür etmek istedim. Ben bir cevap doğru ilerleme yapmaya başladı eğer deyimi sonlandırmak için unuttum keşfetti kadar cevaplar çalışıyor ve test ettikten sonra hala benim sorunun kısa gerçek çözümün her türlü geliyordu o değildi.

 if ((($type == "image/gif")
    || ($type == "image/jpeg")
    || ($type == "image/pjpeg"))
    && ($size < 2000000))
      {

Now that this if statement has a ending and I have had time to study all of your answers I'm sure I will have this page working to my liking in no time. It's working now but their are still refinements to be made. Here is my working html and php pages.

HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<!-- 
html admin page for HH 
-->
<title>Administartor Panel</title>
<head>
<link rel="stylesheet" type="text/css" href="admin.css" />
</head>
<body>
<h1>Heritage House Administartor Panel</h1>
<br/>
<table>
<tr>
<td id="eone">
<br/>
<p>Event Uploader</P>
<form action="formupload.php" method="post"
enctype="multipart/form-data">
<label for="selection">Please select the event you would like to edit.</label>
<select name="selection">
<option value="file1">Event1</option>
<option value="file2">Event2</option>
<option value="file3">Event3</option>
<option value="file4">Event4</option>
<option value="file5">Event5</option>
<option value="file6">Event6</option>
</select>
<br />
<p> Please upload your event picture file here.</p>
<p align="center">
<label for="file">Photo:</label>
<input type="file" name="file" id="file" />
<input type="submit" name="submit" value="Upload" />
</p>
</form>
<form action="WriteTxt1.php" method="post"
enctype="multipart/form-data">
<label for="file">Input Text for the event artical:</label>
<textarea rows="25" cols="100" name="content">
</textarea>
<br />
<input type="submit" name="submit" value="Save" />
</form>
</td>
</tr>

</form>
</td>
</tr>
</body>
</html>

PHP

    //This function separates the extension from the rest of the file name and returns it
    function findexts ($filename)
    {
    $filename = strtolower($filename) ;
    $exts = split("[/\\.]", $filename) ;
    $n = count($exts)-1;
    $exts = $exts[$n];
    return $exts;
    } 
    //This if statement assigns the new file name to a variable from the value of the options menu in the html form selection.
 $new = $_POST ["selection"] . "."; 
    //This applies the function to our file
    $ext = findexts ($_FILES ["file"] ["name"]) ;
        //This assigns the subdirectory you want to save into.
        $targett = "forms/upload/";
        //This combines the directory, the new file name, and the extension
        $target = $targett . $new.$ext; 
        // makes sure image meets specs
    if ((($_FILES ["file"] ["type"] == "image/gif")
    || ($_FILES ["file"] ["type"] == "image/jpeg")
    || ($_FILES ["file"] ["type"] == "image/pjpeg"))
    && ($_FILES ["file"] ["size"]< 2000000))
      {
      echo "file check pass<br />";
      }
      //makes an error if file does not meet standards 
      if ( $_FILES ["file"] ["error"] > 0)
        {
        echo "Return Code: " . $_FILES ["file"] ["error"] . "<br />";
        }
      else
        {
        echo "Thank You! <br />";
        }
    //saves uploaded file
        if (file_exists("forms/upload/" . $_FILES ["file"] ["name"]))
          {
          move_uploaded_file( $_FILES ["file"]["tmp_name"], $target);
          echo $_FILES ["file"] ["name"] . " Old File Over Written. ";
          }
        else
          {
          move_uploaded_file( $_FILES["file"]["tmp_name"], $target);
          echo "Stored in: " . "forms/upload/" . $_FILES ["file"] ["name"];
          }   
?>
<html>
<!-- 
html to return user to admin page 
-->
<title>
Upload Result
</title>
<head>
<p>
<br />
Back To Admin Page
</p>
</head>
<body>
<form action="">
<a href="adminarea.html">
<input type="button" value="Back" />
</a>
</form>
</body>
</html>

Not: Ben sadece düzenlemek ve benim kod kontrol hata Notepad2 ve firefox kullanıyorum. Ben onların hakkını php üzerinden hata ayıklama daha iyi yollar onların olduğunu tahmin ediyorum?