function.fopen PHP Version 5.3.1
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.
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
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.
$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
Thug Life
Curtidas 0
Respostas
Rodrigo Marques
17/06/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
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
GOSTEI 0
Thug Life
17/06/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.
formulário está ok.
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
<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.
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
GOSTEI 0
Thug Life
17/06/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, até este momento eu usava o xammp não consegui localizar o arquivo para alterar 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.
short tags= OFF
short tags= ON
GOSTEI 0