1
phillipd
Trying to understand xoopsformfile
  • 2005/2/1 21:36

  • phillipd

  • Quite a regular

  • Posts: 219

  • Since: 2004/4/20


I found the following code snippet on this forum and it works but I just don't understand HOW it works. My question is with this line:

$field = $_POST["xoops_upload_file"][0] ;

Where does "xoops_upload_file" come from? It's not in the form code. What is it? Is it a XOOPS thing? And it still, when echoed to the browser, only shows the filename. The path component is missing. But it works, the file is uploaded to the images dir. This is really confounding me, it looks like magic! I would really like to understand this XoopsFormFile mechanism so I may use it with some confidence. Any help here is GREATLY appreciated. What piece of information am I missing?

Thanks

Doug P (Code below)


include("admin_header.php");


$op = 'form';


function form() {

include XOOPS_ROOT_PATH."/class/xoopsformloader.php";
$my_form = new XoopsThemeForm("Upload", "form", "index.php");
$my_form->setExtra( "enctype='multipart/form-data'" ) ;
$img_box = new XoopsFormFile("Image", "photo", $max_imgsize);
$img_box->setExtra( "size ='50'") ;
$my_form->addElement($img_box);
$button_tray = new XoopsFormElementTray('' ,'');
$button_tray->addElement(new XoopsFormButton('', 'post',"Submit", 'submit'));
$my_form->addElement($button_tray);
$my_form->display();
}



foreach ( $_POST as $k => $v ) {
${$k} = $v;
}
if ( isset($post) ) {
$op = 'post';
}

switch ($op) {


case "post":
$max_imgsize = 100000;
$max_imgwidth = 500;
$max_imgheight = 500;
$allowed_mimetypes = array('image/gif', 'image/jpeg', 'image/pjpeg', 'image/x-png');
$img_dir = XOOPS_ROOT_PATH . "/modules/mymodule/images" ;

include_once(XOOPS_ROOT_PATH."/class/uploader.php");
$field = $_POST["xoops_upload_file"][0] ;

if( !empty( $field ) || $field != "" ) {


$uploader = new XoopsMediaUploader($img_dir, $allowed_mimetypes, $max_imgsize, $max_imgwidth, $max_imgheight);
$uploader->setPrefix( 'img' ) ;
if( $uploader->fetchMedia( $field ) && $uploader->upload() ) {
$photo=$uploader->getSavedFileName();

} else {
echo $uploader->getErrors();
}
}



break;

case 'form':
default:
xoops_cp_header();

form();

xoops_cp_footer();
break;
}
?>

2
jdseymour
Re: Trying to understand xoopsformfile

I believe that the uploads are handled by uploader.php in the class folder.

3
phillipd
Re: Trying to understand xoopsformfile
  • 2005/2/1 23:19

  • phillipd

  • Quite a regular

  • Posts: 219

  • Since: 2004/4/20


I've figured that out already, but it has no reference to xoops_upload_file. It uses php's move_uploaded_file() function. But I still don't understand that how this single line works.

$field = $_POST["xoops_upload_file"][0] ;

What does the "xoops_upload_file" reference?

Still looking...


Damn! I just found it originating in formfile.php in the "render" function. But since the xoopsform file is intended to be passed a text gadget name, why is xoops_upload_file used instead of the passed name?

Doug P

Login

Who's Online

238 user(s) are online (179 user(s) are browsing Support Forums)


Members: 0


Guests: 238


more...

Donat-O-Meter

Stats
Goal: $100.00
Due Date: Nov 30
Gross Amount: $0.00
Net Balance: $0.00
Left to go: $100.00
Make donations with PayPal!

Latest GitHub Commits