PHP kullanarak sunucusuna resim upload.

6 Cevap php

Merhaba ben birçok forum ve nasıl bir sunucuya bir resim yüklemek ve bu çalışma almak başardı size web sitelerini okudum, ben benim sunucuya bir dosya yükleyebilirsiniz ancak dosya adını saklamak buldum Aşağıdaki örnekte üzerinde çalışır ve ben de daha fazla veri veritabanına girilen sağlayan bir form oluşturmak gerekir. Ben önce yapmış çok php ile bu gibi şaşırıp. Kimsenin lütfen bana yardımcı olabilir hayır çok başarı ile farklı web siteleri tutorals çalışmakla sonuna geldik! Ben bunu yaparken bir proje im için yapılması gerekir.

Ben temelde kullanıcıların bir grup üyesinin bir fotoğraf yüklemek ve görüntülemek için halk için bir web sayfasında görüntülenen böylece bilgi onlar hakkında saklanmasını sağlayan bir CMS yapmaya çalışıyorum.

Tüm Sense yapar umuyoruz.

Şerefe

Levye


Benim Tablo şöyle:

Field              Type             Null    Default     
id                 int(10)          No                   
nameMember         varchar(25)      No                   
bandMember         text             No                   
photo              varchar(30)      No                   
aboutMember        text             No                   
otherBands         text             No      

Ben istiyorum formu bu gibi görünecektir:

   <h1>Adding a new Band Member or Affiliate</h1>
      <form method="post" action="addMember.php" enctype="multipart/form-data">
       <p>
              Please Enter the Band Members Name.
            </p>
            <p>
              Band Member or Affiliates Name:
            </p>
            <input type="text" name="nameMember"/>
            <p>
              Please Enter the Band Members Position. Example:Drums.
            </p>
            <p>
              Member's Position:
            </p>
            <input type="text" name="bandMember"/>
            <p>
              Please Upload a Photo in gif or jpeg format. The file name should be named after the Members name. If the same file name is uploaded twice it will be overwritten!
            </p>
            <p>
              Photo:
            </p>
            <input type="file" name="filep" size=35 />
            <p>
              Please Enter any other information about the band member here.
            </p>
            <p>
              Other Member Information:
            </p>
<textarea rows="10" cols="35" name="aboutMember">
</textarea>
            <p>
              Please Enter any other Bands the Member has been in.
            </p>
            <p>
              Other Bands:
            </p>
            <input type="text" name="otherBands" size=30 />
            <br/>
            <br/>
            <input TYPE="submit" title="Add data to the Database" value="Add Member"/>
          </form>

Sunucuya bir resim yükler ve sadece, bu bir örnek:

<?

if ($_POST["action"] == "Load")
{
$folder = "images/";

move_uploaded_file($_FILES["filep"]["tmp_name"] , "$folder".$_FILES["filep"]["name"]);

echo "
<p align=center>File ".$_FILES["filep"]["name"]."loaded...";

$result = mysql_connect("localhost", "******", "*****") or die ("Could not save image name

Error: " . mysql_error());

mysql_select_db("project") or die("Could not select database");
mysql_query("INSERT into dbProfiles (photo) VALUES('".$_FILES['filep']['name']."')");
if($result) { echo "Image name saved into database

"; }

}

?>

Ve Örnekler kullanmak zorunda formu şudur:

<form action=addMember.php method=post enctype="multipart/form-data">
<table border="0" cellspacing="0" align=center cellpadding="3" bordercolor="#cccccc">
<tr>
<td>File:</td>
<td><input type="file" name="filep" size=45></td>
</tr>
<tr>
<td colspan=2><p align=center>
<input type=submit name=action value="Load">
</td>
</tr>
</table>
</form>

Tekrar teşekkürler herhangi bir yardım için.

Ps. Görüntüler dosya yazma için açıktır.

6 Cevap

Here is the answer Tüm bu görevi yapmak için öğrenmek için çalışıyorum web üzerinden yaptığı gibi arayan o sizin için. Eğer Veritabanı istediğiniz bir mysql veritabanı ve diğer form veri depolanan dosya adı ile bir sunucuya bir resim yükleyerek. yardımcı olmadığını bana bildirin lütfen.

İhtiyacınız Öncelikle formu:

    <form method="post" action="addMember.php" enctype="multipart/form-data">
    <p>
              Please Enter the Band Members Name.
            </p>
            <p>
              Band Member or Affiliates Name:
            </p>
            <input type="text" name="nameMember"/>
            <p>
              Please Enter the Band Members Position. Example:Drums.
            </p>
            <p>
              Band Position:
            </p>
            <input type="text" name="bandMember"/>
            <p>
              Please Upload a Photo of the Member in gif or jpeg format. The file name should be named after the Members name. If the same file name is uploaded twice it will be overwritten! Maxium size of File is 35kb.
            </p>
            <p>
              Photo:
            </p>
            <input type="hidden" name="size" value="350000">
            <input type="file" name="photo"> 
            <p>
              Please Enter any other information about the band member here.
            </p>
            <p>
              Other Member Information:
            </p>
<textarea rows="10" cols="35" name="aboutMember">
</textarea>
            <p>
              Please Enter any other Bands the Member has been in.
            </p>
            <p>
              Other Bands:
            </p>
            <input type="text" name="otherBands" size=30 />
            <br/>
            <br/>
            <input TYPE="submit" name="upload" title="Add data to the Database" value="Add Member"/>
          </form>

Daha sonra bu kod size formdaki verileri işler:

   <?php

//This is the directory where images will be saved
$target = "your directory";
$target = $target . basename( $_FILES['photo']['name']);

//This gets all the other information from the form
$name=$_POST['nameMember'];
$bandMember=$_POST['bandMember'];
$pic=($_FILES['photo']['name']);
$about=$_POST['aboutMember'];
$bands=$_POST['otherBands'];


// Connects to your Database
mysql_connect("yourhost", "username", "password") or die(mysql_error()) ;
mysql_select_db("dbName") or die(mysql_error()) ;

//Writes the information to the database
mysql_query("INSERT INTO tableName (nameMember,bandMember,photo,aboutMember,otherBands)
VALUES ('$name', '$bandMember', '$pic', '$about', '$bands')") ;

//Writes the photo to the server
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target))
{

//Tells you if its all ok
echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory";
}
else {

//Gives and error if its not
echo "Sorry, there was a problem uploading your file.";
}
?>

Kod www.about.com düzenlenebilir

<form method="post" action="addMember.php" enctype="multipart/form-data">
    <p>
              Please Enter the Band Members Name.
            </p>
            <p>
              Band Member or Affiliates Name:
            </p>
            <input type="text" name="nameMember"/>
            <p>
              Please Enter the Band Members Position. Example:Drums.
            </p>
            <p>
              Band Position:
            </p>
            <input type="text" name="bandMember"/>
            <p>
              Please Upload a Photo of the Member in gif or jpeg format. The file name should be named after the Members name. If the same file name is uploaded twice it will be overwritten! Maxium size of File is 35kb.
            </p>
            <p>
              Photo:
            </p>
            <input type="hidden" name="size" value="350000">
            <input type="file" name="photo"> 
            <p>
              Please Enter any other information about the band member here.
            </p>
            <p>
              Other Member Information:
            </p>
<textarea rows="10" cols="35" name="aboutMember">
</textarea>
            <p>
              Please Enter any other Bands the Member has been in.
            </p>
            <p>
              Other Bands:
            </p>
            <input type="text" name="otherBands" size=30 />
            <br/>
            <br/>
            <input TYPE="submit" name="upload" title="Add data to the Database" value="Add Member"/>
          </form>

save it as addMember.php

<?php

//This is the directory where images will be saved
$target = "your directory";
$target = $target . basename( $_FILES['photo']['name']);

//This gets all the other information from the form
$name=$_POST['nameMember'];
$bandMember=$_POST['bandMember'];
$pic=($_FILES['photo']['name']);
$about=$_POST['aboutMember'];
$bands=$_POST['otherBands'];


// Connects to your Database
mysql_connect("yourhost", "username", "password") or die(mysql_error()) ;
mysql_select_db("dbName") or die(mysql_error()) ;

//Writes the information to the database
mysql_query("INSERT INTO tableName (nameMember,bandMember,photo,aboutMember,otherBands)
VALUES ('$name', '$bandMember', '$pic', '$about', '$bands')") ;

//Writes the photo to the server
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target))
{

//Tells you if its all ok
echo "The file ". basename( $_FILES['photo']['name']). " has been uploaded, and your information has been added to the directory";
}
else {

//Gives and error if its not
echo "Sorry, there was a problem uploading your file.";
}
?>

Yukarıdaki kod küçük bir hata, ben bu hata düzeltildi.

Her fotoğraf için bir kimlik var yani benim önerim fotoğrafı yeniden adlandırmak olduğunu. Örneğin tarihe göre adlandırın

<?php
 $date = getdate();
 $name .= $date[hours];
 $name .= $date[minutes];
 $name .= $date[seconds];
 $name .= $date[year];
 $name .= $date[mon];
 $name .= $date[mday];
?>

not: dosyanızın dosya uzantısı unutma veya fotoğraf için rasgele bir dize üretebilir, ama ben tavsiye etmem. Ben de size dizinine upload önce dosya uzantısını kontrol etmenizi tavsiye ederim.

<?php 
if ((($_FILES["photo"]["type"] == "image/jpeg")
            || ($_FILES["photo"]["type"] == "image/pjpg"))
            && ($_FILES["photo"]["size"] < 100000000))
            {
                move_uploaded_file($_FILES["photo"]["tmp_name"], $target.$name);

                if(mysql_query("your query"))
                {
                    //success handling
                }
                else 
                {
                    //failed handling
                }
            }
            else
            {
                //error handling
            }
?>

Bu yardımcı olabilir umuyoruz.

Eğer forma girdi daha fazla veri istiyorsanız, sadece $ _POST yoluyla gönderilen verilere erişmek.

Eğer varsa

<input type="text" name="firstname" />

Eğer ile erişmek

$firstname = $_POST["firstname"];

Daha sonra okumak için sorgu hattı güncelleme olabilir

mysql_query("INSERT INTO dbProfiles (photo,firstname)
             VALUES('{$filename}','{$firstname}')");

Note: Her filtre ve veri sterilize.

Sizin bölüm:

$result = mysql_connect("localhost", "******", "*****") or die ("Could not save image name

Error: " . mysql_error());

mysql_select_db("project") or die("Could not select database");
mysql_query("INSERT into dbProfiles (photo) VALUES('".$_FILES['filep']['name']."')");
if($result) { echo "Image name saved into database

";

Pek mantıklı değil, bağlantı $ result adlı olmamalı ama bu bir adlandırma sorunu değil bir kodlama biridir.

($ Result), senin ne olursa olsun başarısız insert sorgusu veritabanına bağlanmak eğer söyleyerek veya çıktısı "veritabanına kaydedilir Image" başarılı ne bir kodlama konudur.

Do eklemeyi deneyin

$realresult = mysql_query("INSERT into dbProfiles (photo) VALUES('".$_FILES['filep']['name']."')");

ve $ realresult için if ($ result) değiştirebilirsiniz

Ben sorgu belki ek sütunlar falan var, başarısız olduğunu sanıyorum?

Yerine, sorgunuzu yapıştırmakta / kopyasını deneyin ". $ _FILES ['Filep'] ['name']." Test ve sorgu tarayıcıda çalışan ve içeri giderse görmek ile

Aşağıdaki ekleme dosya adlarında tırnak sorunları önler, örneğin

"freddy's pic.jpg"

Bazı işletim sistemlerinde kabul edilebilir olan.

Önce:

$pic=($_FILES['photo']['name']);

Sonra:

$pic=(mysql_real_escape_string($_FILES['photo']['name']));