Array
(
)

function.fopen PHP Version 5.3.1

PHP
Thug Life
   - 17 jun 2012

Tenho uma página cad_produtos, na referida página faço uso da função fopen para enviar a foto para o host local e associa a foto ao produto, o problema é que o script não está fazendo o que deveria estar fazendo ele da os seguintes erros:
Warning: fopen() [function.fopen]: Filename cannot be empty in C:\xamppteste\xampp\htdocs\si\web\admin\cad_produtos.php on line 24
Warning: fread() expects parameter 1 to be resource, boolean given in C:\xamppteste\xampp\htdocs\si\web\admin\cad_produtos.php on line 25
Warning: fclose() expects parameter 1 to be resource, boolean given in C:\xamppteste\xampp\htdocs\si\web\admin\cad_produtos.php on line 27
já li o manual, varios artigos na internet e ainda não consegui concertar o problema, depois de varias xícaras de café, resolvi postar aqui meu script quem sabe tem alguém aqui que tenha uma solução.
#Código
$foto = $_FILES[foto][tmp_name];
$tamanho = $_FILES[foto][size];
$tipo = $_FILES[foto][type];
$nome = $_FILES[foto][name];
if ($foto != none) {
$fp = fopen($foto, r);
$conteudo = fread($fp, $tamanho);
$conteudoFoto = addslashes($conteudo);
fclose($fp);
} else {
$foto = null;
}
switch ($_REQUEST[action]) {
case save:
if ($_POST[editing] == 0) {
$sql = INSERT INTO produtos (marcas_id, categorias_id, descricao, preco, foto) .
VALUES ($marcas_id, $categorias_id, $descricao,$preco, $conteudoFoto);
} else {
$sql = UPDATE produtos SET .
marcas_id = $marcas_id .
,categorias_id = $categorias_id .
,descricao = $descricao .
,preco = $preco .
,foto = $foto .
WHERE produtos_id = $produtos_id;
}
}

Penso que ta bom pra não ficar muito grande o código aqui, mais a pedido posto todo o código da página, mais penso que não há necessidade. obrigado

Netcat
|
MVP
    17 jun 2012

Cara,

boa tarde... Verifica se o nome da foto contem a extensao, veja se ele esta certinho em relação ao caminho e a existencia do arquivo...

Outra coisa.. o parametro da fopen(CAMINHO DO ARQUIVO, r)....

e pelo seu erro o nome do arquivo que voce esta enviando, esta vazio...

Verifica do formulario que essa foto esta indo e confirma se no form voce adicionou:

<form enctype=application/form-data>

pois é isso que permite o envio de fotos...

Att.,
Rodrigo Marques - www.cotiinformatica.com.br

Thug Life
   - 17 jun 2012

Obrigado Rodrigo, explicando melhor a página, ela carrega 1 campo do tipo select com as categorias dos produtos e outro com as marcas, depois de selecionar a categoria e a marca desejada é só clicar no botão pra fazer o upload,o problema é que ao entrar na página cad_produtos.php ela já carrega com erro, antes de clicar no botão pra selecionar a foto.
#Código
<form id=artigos name=artigos action=<?= $_SERVER[PHP_SELF] ?> method=post enctype=multipart/form-data>
\\e no final do script
<input type=submit id=btGravar name=btGravar class=bta value=Gravar onclick=$(action).value=save />


formulário está ok.

#Código
if ($foto != none) {
$fp = fopen($foto, r);\\aponta erro aqui.
$conteudo = fread($fp, $tamanho);\\aponta erro aqui.
$conteudoFoto = addslashes($conteudo);
fclose($fp);\\aponta erro aqui.
} else {
$foto = null;
}

Eu vi a página funcionar na casa do meu amigo, agora estou começando a pensar que seja por causa da versão do php, um vez que já faz um tempo que a página foi programada, vou entrar em contato com ele e perguntar qual a versão do php ele usava na época. se eu resolver o problema posto aqui como f

Thug Life
   - 17 jun 2012

OK, já entrei em contato com ele, a página não tem erro algum o que estava errado era minha configuração no php.ini, #Códigoshort tags= OFF até este momento eu usava o xammp não consegui localizar o arquivo para alterar #Códigoshort tags= ON removi o xammp do computador e vou instalar mysql apache e php da maneira certa, eu já tive problemas com o easyphp ao instalar o xammp pensei que seria diferente pura ilusão.