Jump to content

[SOLVED] Warning: fread(): supplied argument is not a valid stream


pcbytes

Recommended Posts

I am getting the following error in my little applet to upload images to my database.

 

Warning: fread(): supplied argument is not a valid stream resource in C:\apache\htdocs\upload.php on line 4

 

The script connects to the database no problem. It even creates a new entry. But the entry is blank, and my browser spits out the above mentioned error. Whats wrong in my code?

 

submit.php

 

<form method="post" action="upload.php" enctype="multipart/form-data">
Description:<br>
<input type="text" name="form_description" size="40">
<input type="hidden" name="MAX_FILE_SIZE" value="10000000">
<br>File to upload:<br>
<input type="file" name="form_data" size="40">
<p><input type="submit" name="submit" value="submit">
</form>

 

upload.php

 

<?php
mysql_connect("localhost","jason","password");
mysql_select_db("test");
$data = addslashes(fread(fopen($form_data, "r"), filesize($form_data)));
$result=MYSQL_QUERY("INSERT INTO uploads (description, data,filename,filesize,filetype) ". "VALUES ('$form_description','$data','$form_data_name','$form_data_size','$form_data_type')");
$id= mysql_insert_id();
print "<p>File ID: <b>$id</b><br>";
print "<p>File Name: <b>$form_data_name</b><br>";
print "<p>File Size: <b>$form_data_size</b><br>";
print "<p>File Type: <b>$form_data_type</b><p>";
print "To upload another file <a href=http://192.168.1.66/submit.php> Click Here</a>";
?>

Link to comment
Share on other sites

Replace

 

$data = addslashes(fread(fopen($form_data, "r"), filesize($form_data)));

 

with

 

$filehandle = fopen($form_data, "r");
if ($filehandle === false) die("Couldn't open $form_data");
$filesize = filesize($form_data);
if ($filesize === false) die("Couldn't get filesize for $form_data");
$data = fread($filehandle, $filesize);
if ($data === false) die("Couldn't read from filehandle");
$data = addslashes($data);

 

Edit: Actually, you could just use file_get_contents().  Again, check for errors!  You might want to check if $form_data is empty first, using if (empty($form_data)) { ... }

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.