php kontrol eğer dosya mevcut

2 Cevap

Birisi bunu yüklemeden önce dosya zaten veritabanında var olup olmadığını anlatmak için kontrol yapmak için nasıl bana rehberlik eder?

i veritabanına bir dosya yüklemek istiyorum, ama kaydetmeden önce, ben dosya zaten ilk var whther kontrol etmek istiyorum. evet sonra insert yürütme dont eğer.

i bir dosya uplaoding bu reference kullanılır.

Çok teşekkür ederim.

2 Cevap

Ben bu soruyorsun ne ise emin değilim, ama PHP fonksiyonu inşa, file_exists (MUTLAK-PATH-TO-DOSYA) kullandınız?

$exists = file_exists('myfile.doc');
if(!$exists) {
// do your processing
}

http://php.net/manual/en/function.file-exists.php

Eğer veritabanını kontrol ediyorsanız, o zaman sadece örneğin, dosya tutabilir ne olursa olsun sütun sorgu:

SELECT * FROM my-table WHERE my-column = 'my-uploaded-file-name';

Eğer bağlantılı makaleden bakılırsa, bir dosya bu sorgu idam edildiğinde "veritabanına yüklenen" olarak kabul edilir:

$query = "INSERT INTO upload (name, size, type, content ) ".
"VALUES ('$fileName', '$fileSize', '$fileType', '$content')";

Bir dosya "veritabanına yüklendi" olmadığını kontrol etmek için bir yol anlamına gelir bir dosya yükledi edilirken aynı adı, dosya türü ve içeriği ile DB zaten bir giriş varsa, kontrol etmek olacağını Geçerli bir.

Ben böyle bir giriş bu gibi bir sorgu kullanarak zorlama olabilir varsayalım:

select *
from upload
where name = '$fileName'
    and size = '$fileSize'
    and type = '$fileType'
    and content = '$content'

Bu sorgu bir sonuç döndürürse, dosya büyük olasılıkla zaten "veritabanında" dir.


BTW : To avoid checking the content of the whole file, a solution might be to add a new column to your upload table, to store some kind of hash of the file (see md5 and/or sha1 for instance).


BTW 2 : you should read a bit about SQL Injections, before using the code presented in this article without really understanding it : the following portion of code, copy/pasted from the "code for downloading files" section, is quite frightening, for instance :

$id    = $_GET['id'];
$query = "SELECT name, type, size, content " .
         "FROM upload WHERE id = '$id'";