Ben yüklemek için bir PHP komut dosyası geliştiriyorum. PDF belgeleri bir MySQL veritabanı içine orta BLOB'ları olarak PHP ile. Komut ayrıca kullanıcıların dosyaları ve açık / onları indirmek için arama yapmanızı sağlar ama senaryonun parçası benim konuyla alakalı olduğunu sanmıyorum. Komut az 2 MB dosyaları ile çalışıyor ancak en kısa sürede deneyin ve daha fazla 2 MB bir şey değildir, bir dosya upload olarak benim içerik (Orta BLOB) sütun girecek ve mim türü için hiçbir değeri yoktur. Ben zaten 1 MB varsayılan değeri 4 MB MySQL sunucusu için max_packet_size artan denedim. Ben de doğru değerler php.ini güncelledik, ben düşünüyorum. Ben 4MB, 16 MB 4 MB ve memory_limit için post_max_size için upload_max_size ayarlayın. Bu senaryoyu dikkate bol bir intranet üzerinde bir iç uygulama için gibi görünüyor 60 saniye varsayılan çünkü ben gerçekten olsa max_input_time ile denediği değil.
Ben de errorInfo () ve errorCode () ve her iki 0'lar ile (hiçbir hata) ile benim komut PDO nesnesi hataları yakalamak için çalıştık.
İşte benim komut dosyası yükleme bölümü:
if ($key == 'upload')
{
set_time_limit(0);
$_SESSION['upload'] = $value;
if ($_FILES['userfile']['name'])
{
$fileName = $_FILES['userfile']['name'];
$tmpName = $_FILES['userfile']['tmp_name'];
$fileSize = $_FILES['userfile']['size'];
$fileType = $_FILES['userfile']['type'];
$docType = $_POST['docType'];
$netKey = $_POST['netKey'];
$fp = fopen($tmpName, 'r');
$content = fread($fp, filesize($tmpName));
$content = addslashes($content);
fclose($fp);
$_SESSION['filetype'] = $fileType;
if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
}
$sqlCheck = "SELECT id, name, documentType, networkKey FROM upload WHERE active='1'";
foreach ($dbh->query($sqlCheck) as $row)
{
if (($row['name'] == $fileName) && ($row[networkKey] == $netKey) && ($row['documentType'] == $docType))
{
$_SESSION['updateRow'] = $row['id'];
}
}
if ($_SESSION['updateRow'])
{
$deactivateDuplicate = "UPDATE upload SET active = 0, modifiedBy = '".strtoupper($_SERVER['REMOTE_USER'])."', modifiedDate = Now() WHERE id = '".$_SESSION['updateRow']."' AND active ='1'";
$dbh->query($deactivateDuplicate);
$_SESSION['sql'] = "SELECT id, name, documentType, type, size, networkKey, modifiedBy, modifiedDate, active FROM upload WHERE active = '1'";
$_SESSION['uploadSearch'] = 1;
$_SESSION['updateRow'] = 0;
}
$values = "'".$fileName."','".$docType."','".$fileType."','".$content."','".$fileSize."','".$netKey."','".strtoupper($_SERVER['REMOTE_USER'])."', Now(), 1";
$sqlUpload = "INSERT INTO upload (name, documentType, type, content, size, networkKey, modifiedBy, modifiedDate, active) VALUES (".$values.")";
$dbh->query($sqlUpload);
$_SESSION['sql'] = "SELECT id, name, documentType, type, size, networkKey, modifiedBy, modifiedDate, active FROM upload WHERE active = '1'";
$_SESSION['uploadSearch'] = 1;
}
}
Ve burada daha küçük bir dosya çalıştığını gösteren uygulamanın ön uç ve daha büyük bir dosya değildir. Dosya deneme.pdf az 1 MB ve dosya test.pdf 2.5 MB.
http://www.imagechicken.com/viewpic.php?p=1255628359017775300&x=png
Ben img etiketleri kullanılmış olurdu ama ne yazık ki ben yeni bir kullanıcı değilim ve izin verilmez.
The next thing I am going to look for is a setting in Apache that limits file sizes. I am new to LAMP so any tips would be great. Thanks