TalkPHP
 
 
Account Login
Latest Articles
» The basic usage of PHPTAL, a XML/XHTML template library for PHP
» Vulnerable methods and the areas they are commonly trusted in.
» Simple way to protect a form from bot
» The Basics On: How Session Stealing Works
» How to keep your forms from double posting data
IRC Channel
IRC Speech Bubble Join the friendly bunch on IRC...
(#TalkPHP on Freenode)

...Also available via a web interface.

See this thread for information on the TalkPHP Free Hugs Initiative™. Subject to availability.
Associates
Associates
CSS Tutorials
Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old 04-21-2008, 05:23 AM   #1 (permalink)
The Addict
 
sarmenhb's Avatar
 
Join Date: Jan 2008
Location: los angeles
Posts: 309
Thanks: 44
sarmenhb is on a distinguished road
Default Warning: fread(): supplied argument is not a valid stream resource

what did i do wrong here?

Code:
<?php
require("config.php");
if(isset($_POST['btnupload']) && $_FILE['filetag']['size'] > 0) {


#--------------------------------------------
# 	VARIABLES
#--------------------------------------------

$filename = $_FILE['filetag']['name'];
$filetype = $_FILE['filetag']['type'];
$filesize = $_FILE['filetag']['size'];
$tmp_filename = $_FILE['filetag']['tmp_name'];


#--------------------------------------------
#  Upload file to database
#--------------------------------------------

$fp = fopen($tmp_filename, 'r');
$file_content = fread($fp, filesize($tmp_filename));
$file_content = addslashes($file_content);
$filename = addslashes($filename);
fclose($fp);
#--------------------------------------------
#	Query to upload
#--------------------------------------------

$sql = "INSERT INTO tbl_upload VALUES(null,'$filename','$filesize','$filetype','$file_content')";
mysql_query("$sql");

echo "file uploaded";

}

?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>

<body>

<form method="post" enctype="multipart/form-data">

<input type="hidden" name="maxfilesize" value="2000000" />
<input type="file" name="filetag" />
<input type="submit" name="btnupload" value="upload" />






</form>


</body>
</html>
here is the table description
Code:
CREATE TABLE `tbl_upload` (
  `id`       int AUTO_INCREMENT NOT NULL,
  `name`     varchar(30) NOT NULL,
  `type`     varchar(30) NOT NULL,
  `size`     int NOT NULL,
  `content`  mediumblob NOT NULL,
  /* Keys */
  PRIMARY KEY (`id`)
) ENGINE = InnoDB;
here is php.ini

Code:
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
upload_tmp_dir = "c:/wamp/tmp"

; Maximum allowed size for uploaded files.
upload_max_filesize = 20M
__________________
no signature set

Last edited by sarmenhb : 04-21-2008 at 05:58 AM.
sarmenhb is offline  
Reply With Quote
Old 04-21-2008, 03:50 PM   #2 (permalink)
The Contributor
 
buggabill's Avatar
 
Join Date: Jan 2008
Location: Maine, USA
Posts: 92
Thanks: 2
buggabill is on a distinguished road
Default

It does not appear that you are checking if your fopen succeeded. Check $fp for a false and if it does return one, that could be your problem.
__________________
-- Bill
"Why is it drug addicts and computer aficionados are both called users?" -Clifford Stoll
buggabill is offline  
Reply With Quote
Old 04-21-2008, 05:48 PM   #3 (permalink)
The Acquainted
 
freenity's Avatar
 
Join Date: Feb 2008
Posts: 119
Thanks: 17
freenity is on a distinguished road
Default

why do you think you made something wrong?
what is the problem?
the file is uploaded?
can you insert data in the db?
__________________
http://feudal-times.net - My PBB Game
http://gwphp.feudal-times.net - My Blog "Gaming With PHP"
freenity is offline  
Reply With Quote
Old 04-21-2008, 11:44 PM   #4 (permalink)
Orc
The Prestige
 
Orc's Avatar
 
Join Date: Dec 2007
Posts: 1,044
Thanks: 193
Orc is on a distinguished road
Default

Use file_get_content. by the way, its not $_FILE its $_FILES
__________________
VillageIdiot can have my babbies ;d
Orc is offline  
Reply With Quote
Old 04-22-2008, 01:16 AM   #5 (permalink)
The Addict
 
sarmenhb's Avatar
 
Join Date: Jan 2008
Location: los angeles
Posts: 309
Thanks: 44
sarmenhb is on a distinguished road
Default

thanks orc for that, i put it as $_FILES now
and when i upload it it looks like it worked.

but i look in the table and nothing is there

so now im confused to why it wont work.
__________________
no signature set
sarmenhb is offline  
Reply With Quote
Old 04-22-2008, 01:20 AM   #6 (permalink)
Orc
The Prestige
 
Orc's Avatar
 
Join Date: Dec 2007
Posts: 1,044
Thanks: 193
Orc is on a distinguished road
Default

Quote:
Originally Posted by sarmenhb View Post
thanks orc for that, i put it as $_FILES now
and when i upload it it looks like it worked.

but i look in the table and nothing is there

so now im confused to why it wont work.
thats cause you didn't specify what columns to put the data in, like so:
Code:
INSERT INTO `table (col1,col2) VALUES('col1','col2 value');
you should add a or die(mysql_error()); to the end of mysql_query()
__________________
VillageIdiot can have my babbies ;d
Orc is offline  
Reply With Quote
Old 04-22-2008, 06:21 AM   #7 (permalink)
The Addict
 
sarmenhb's Avatar
 
Join Date: Jan 2008
Location: los angeles
Posts: 309
Thanks: 44
sarmenhb is on a distinguished road
Default

i found the problem, for some reason when i took this line out

Code:
$filename = addslashes($filename);
it worked.
__________________
no signature set
sarmenhb is offline  
Reply With Quote
Old 04-23-2008, 08:48 AM   #8 (permalink)
The Acquainted
 
EyeDentify's Avatar
 
Join Date: Nov 2007
Location: Sweden
Posts: 106
Thanks: 13
EyeDentify is on a distinguished road
Default

You should also use:
base64_encode() on the data before putting it in the database:
PHP: base64_encode - Manual

And when you want to take it out use:
base64_decode() on the data.
PHP: base64_decode - Manual

Before you display it or download it or whatever.

Good luck.
__________________
Of course the whole point of a doomsday machine, would have been lost if you keep it a secret.
EyeDentify is offline  
Reply With Quote
The Following User Says Thank You to EyeDentify For This Useful Post:
sarmenhb (04-24-2008)
Reply



Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


All times are GMT. The time now is 09:39 PM.

 
     

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.1.0
Inactive Reminders By Icora Web Design