Error: Length parameter must be greater than 0

By: capitanqueso  

If you ever try to upload an empty file using fread(), php may show a nasty warning (according to your "error_reporting") about "Length parameter must be greater than 0" especially if you are parsing this as xml. So in order to handle this error from here you may do the next:

$file = $_FILES['file'];
$error_text = true; // Show text or number
if($file['size'] == 0 && $file['error'] == 0){
$file['error'] = 5;
$upload_errors = array(
UPLOAD_ERR_OK => "No errors.",
UPLOAD_ERR_INI_SIZE => "Larger than upload_max_filesize.",
UPLOAD_ERR_FORM_SIZE => "Larger than form MAX_FILE_SIZE.",
UPLOAD_ERR_PARTIAL => "Partial upload.",
UPLOAD_ERR_NO_FILE => "No file.",
UPLOAD_ERR_NO_TMP_DIR => "No temporary directory.",
UPLOAD_ERR_CANT_WRITE => "Can't write to disk.",
UPLOAD_ERR_EXTENSION => "File upload stopped by extension.",
UPLOAD_ERR_EMPTY => "File is empty." // add this to avoid an offset
// error: report what PHP says went wrong
$err = ($error_text) ? $upload_errors[$file['error']] : $file['error'] ;
header("Content-Type: text/xml");
echo '<errors>
$err .'
// Add your code to prevent fread() to run, either from here or with a previous "if"

Archived Comments

Most Viewed Articles (in PHP )

PHP code to import from CSV file to MySQL

Polymorphism in PHP

PHP file upload with IIS on windows XP/2000 etc

PHP file upload (Large Files)

Count occurrences of a character in a String in PHP

Installing PHP and MySQL in windows, mac and linux

Encrypting files using GnuPG (GPG) via PHP


PHP 5.1.4 INSTALLATION on Solaris 9 (Sparc)

Building PHP 5.x with Apache2 on SuSE Professional 9.1/9.2

Installing PHP 5.x with Apache 2.x on HP UX 11i and configuring PHP 5.x with Oracle 9i

Cannot load /usr/local/apache/libexec/ into server:

Setting up PHP in Windows 2003 Server IIS7, and WinXP 64

error: "Service Unavailable" after installing PHP to a Windows XP x64 Pro

Function to sort array by elements and count of element in PHP

Latest Articles (in PHP)

Comment on this tutorial