Professional CodeIgniter, Thomas Myer

Chapter 10: Launch
304


Last Remaining Issues

You get a call from Claudia. She ' s very excited because her team has successfully uploaded a great deal
of information onto the site. " However, we have a little problem, " she says.

It appears that whenever you create a new product in the system and don ' t upload a file, the system
freezes. The same thing happens when you edit an existing product and don ' t upload a new image for it.
" One more thing, " she says. " I know it ' s kind of a pain, but my mother got on the test site the other day,
and nothing worked for her. I talked to her about it, and I think she ' s got a really old browser that
doesn ' t support all the things we have on the site. "

You assure Claudia that you will look into the file upload issue and that one of the last tasks you had
before launch was the installation of a JavaScript and cookie sniffer to ensure that everyone had a
browser that could handle the site ' s AJAX.


Debugging File Uploads

The file upload issue is a simple one to fix. You have two model functions that do the heavy lifting of
adding/updating products in the database:
addProduct()

and
updateProduct()

. Both of these live in
the MProducts model.

Each of these functions contains a section in which you set the config parameters for the incoming file.
All you have to do is wrap those sections of the code that deal with file uploads with a simple test to see
if
$_FILES

has something in it, and then, right before each specific upload, check to see if there is a name
associated with each file. If there is, perform the upload. If not, move on. Here ' s the code:
function updateProduct(){
$data = array(
`name' =
>
db_clean($_POST[`name']),
`shortdesc' =
>
db_clean($_POST[`shortdesc']),
`longdesc' =
>
db_clean($_POST[`longdesc'],5000),
`status' =
>
db_clean($_POST[`status'],8),
`grouping' =
>
db_clean($_POST[`grouping'],16),
`category_id' =
>
id_clean($_POST[`category_id']),
`featured' =
>
db_clean($_POST[`featured'],3),
`price' =
>
db_clean($_POST[`price'],16)
);
if ($_FILES){
$config[`upload_path'] = `./images/';
$config[`allowed_types'] = `gif|jpg|png';
$config[`max_size'] = `200';
$config[`remove_spaces'] = true;
$config[`overwrite'] = false;
$config[`max_width'] = `0';
$config[`max_height'] = `0';
$this-
>
load-
>
library(`upload', $config);
if (strlen($_FILES[`image'][`image'])){
if(!$this-
>
upload-
>
do_upload(`image')){
c10.indd 304
c10.indd 304
6/10/08 5:38:37 PM
6/10/08 5:38:37 PM


Другие страницы

 
Cкачать книги бесплатно без регистрации в электронном виде (pdf, chm, txt).Вы можете читать книги онлайн на нашем сайте литературного портала книг.Большая подборка учебников, пособий, интересных книг.Электронные книги на английском языке скачать бесплатно без смс.