hi
i\'m working with postnuke.& trying to upload something from postnuke(infact i have added some code for upload)
the code i have added is sent as file in the attachment.
now when i call the function as upload($file_up) where file_up is the name of my field in html
(<input type=file name=file_up>)
i get an error like
warning:wrong datatype for second argument in call to in_array in upload.php line no 71.
& the file u have tried to upload is not allowed.
the line in code its pointing out is
\"\"if (!in_array($the_file_type,$allowed_types1)){
echo\"the file u have tried to upload is not allowed.\";
But when i run this file saperately it works fine.
i don\'t understand what to do.
plz help me.
prasad
<?php
$my_max_file_size = \"102400\"; # in bytes
$image_max_width = \"300\";
$image_max_height = \"300\";
$the_path = \"/var/www/html/prasadwork\";
$registered_types= array(
\"application/x-gzip-compressed\" => \".tar.gz, .tgz\",
\"application/x-zip-compressed\" => \".zip\",
\"application/x-tar\" => \".tar\",
\"text/plain\" => \".html, .php, .txt, .inc (etc)\",
\"image/bmp\" => \".bmp, .ico\",
\"image/gif\" => \".gif\",
\"image/pjpeg\" => \".jpg, .jpeg\",
\"image/jpeg\" => \".jpg, .jpeg\",
\"application/x-shockwave-flash\" => \".swf\",
\"application/msword\" => \".doc\",
\"application/vnd.ms-excel\" => \".xls\",
\"application/octet-stream\" => \".exe, .fla (etc)\"
); # these are only a few examples, you can find many more!
$allowed_types1= array(\"text/plain\");
--
function form($error=false) {
global $PHP_SELF,$my_max_file_size;
if ($error) print $error . \"<br><br>\";
/*print \"\\n<form ENCTYPE=\\\"multipart/form-data\\\" action=\\\"\" . $PHP_SELF . \"\\\" method=\\\"post\\\">\";
print \"\\n<INPUT TYPE=\\\"hidden\\\" name=\\\"MAX_FILE_SIZE\\\" value=\\\"\" . $my_max_file_size . \"\\\">\";
print \"\\n<INPUT TYPE=\\\"hidden\\\" name=\\\"task\\\" value=\\\"upload\\\">\";
print \"\\n<P>Upload a file\";
print \"\\n<BR>NOTE: Max file size is \" . ($my_max_file_size / 1024) . \"KB\";
print \"\\n<br><INPUT NAME=\\\"the_file\\\" TYPE=\\\"file\\\" SIZE=\\\"35\\\"><br>\";
print \"\\n<input type=\\\"submit\\\" Value=\\\"Upload\\\">\";
print \"\\n</form>\";*/
} # END form
--
if (!ereg(\"4\",phpversion())) {
function in_array($needle,$haystack) { # we have this function in PHP4, so for you PHP3 people
for ($i=0; $i < count($haystack); $i++) {
if ($haystack[$i] == $needle) {
return true;
}
}
}
}
--
function validate_upload($file_up) {
$allowed_types1= array(\"text/plain\");
global $my_max_file_size, $image_max_width, $image_max_height,$allowed_types1,$the_file_type,$registered_types;
$start_error = \"\\n<b>Error:</b>\\n<ul>\";
if ($file_up == \"none\") { # do we even have a file?
$error .= \"\\n<li>You did not upload anything!</li>\";
} else { # check if we are allowed to upload this file_type
if (!in_array($the_file_type,$allowed_types1)) {
$error .= \"\\n<li>The file that you uploaded was of a type that is not allowed, you are only
allowed to upload files of the type:txt files only\\n<ul>\";
//while ($type = current($allowed_types1)) {
//$error .= \"\\n<li>\" . $registered_types[$type] . \" (\" . $type . \")</li>\";
//next($allowed_types1);
// }
// $error .= \"\\n</ul>\";
}
if (ereg(\"image\",$the_file_type) && (in_array($the_file_type,$allowed_types1))) {
$size = GetImageSize($file_up);
list($foo,$width,$bar,$height) = explode(\"\\\"\",$size[3]);
if ($width > $image_max_width) {
$error .= \"\\n<li>Your image should be no wider than \" . $image_max_width . \" Pixels</li>\";
}
if ($height > $image_max_height) {
$error .= \"\\n<li>Your image should be no higher than \" . $image_max_height . \" Pixels</li>\";
}
}
if ($error) {
$error = $start_error . $error . \"\\n</ul>\";
return $error;
} else {
return false;
}
}
} # END validate_upload
--
/*function list_files() {
global $the_path;
$handle = dir($the_path);
print \"\\n<b>Uploaded files:</b><br>\";
while ($file = $handle->read()) {
if (($file != \".\") && ($file != \"..\")) {
print \"\\n\" . $file . \"<br>\";
}
}
print \"<hr>\";
}*/
--
function upload($file_up) {
global $the_path,$the_file_name;
$error = validate_upload($file_up);
if ($error) {
form($error);
} else { # cool, we can continue
if (!@copy($file_up, $the_path . \"/\" . $the_file_name)) {
form(\"\\n<b>Something barfed, check the path to and the permissions for the upload directory</b>\");
} else {
//list_files();
//form();
echo \"file uploaded\";
}
}
} # END upload
--
############ Start page
//print \"\n<head>\n<title>Upload example</title>\n</head>\n<body>\";
switch($task) {
case \'upload\':
upload($file_up);
break;
default:
form();
}
//print \"\n</body>\n\";
?>
i need ur help
prasad