|
|
|
| Пробую загрузить файл на сервер - не получается, а при этом на локальной машине всё нормально работает. Вот форма:
<form name=form enctype='multipart/form-data' action=<?php echo $action; ?> method=post>
<table cellpadding="0" cellspacing="2">
<tr>
<td><p class=zag2>Дата размещения на сайте</td>
<td></td>
<td><input class=input size=70 type=text name=date value='<?php echo htmlspecialchars($fio); ?>'></td>
</tr>
<tr>
<td><p class=zag2>Автореферат</td>
<td><input type="checkbox" name="chk_filename" onclick="freeze_filename(this.form)" <?php echo htmlspecialchars($chek_filename); ?>></td>
<td><input class=input size=70 type=file name=filename></td>
</tr>
</table>
</form>
Вот обработчик:
$root= "";
if($_POST['chek_filename'] == "on")
{
if (!empty($_FILES['filename']['tmp_name']))
{
// Формируем путь к файлу
$path = "avtoref/".$_FILES["filename"]["name"];
if (move_uploaded_file($_FILES['filename']['tmp_name'],$root))
{
@unlink($_FILES['filename']['tmp_name']);
@chmod($root, 0777);
}
}
else links("Не указан файл для загрузки");
}
Вроде бы и скрипт должен быть рабочим. Что делать? Заранее благодарен. | |
|
|
|
|
|
|
|
для: Rolex
(19.05.2009 в 22:40)
| | Наверное так имелось ввиду?
<?
if (move_uploaded_file($_FILES['filename']['tmp_name'],$path))
|
| |
|
|
|
|
|
|
|
для: Николай2357
(19.05.2009 в 23:48)
| | Да, именно так. Описался, когда набивал текст на форум. От этого ничуть не слаще: в скрипте стоит $root="avtoref/".$_FILES["filename"]["name"]; | |
|
|
|
|
|
|
|
для: Rolex
(20.05.2009 в 00:10)
| | Опечатка не только там. Вот так у меня работает.
<?
$root= "";
if(!empty($_POST['chek_filename']))
{
if (!empty($_FILES['filename']['tmp_name']))
{
// Формируем путь к файлу
$root = "avtoref/".$_FILES["filename"]["name"];
if (move_uploaded_file($_FILES['filename']['tmp_name'],$root))
{
@unlink($_FILES['filename']['tmp_name']);
@chmod($root, 0777);
}
}
else
{
links("Не указан файл для загрузки");
}
}
|
Если на хостинге проблемы, нужно посмотреть права на каталог avtoref | |
|
|
|
|
|
|
|
для: Николай2357
(20.05.2009 в 00:58)
| | Права на папку avtoref стоят 750. Папка avtoref находится в папке WWW. | |
|
|
|
|
|
|
|
для: Rolex
(20.05.2009 в 11:15)
| | Попробуйте права 777. Каталог avtoref должен находится на одном уровне со скриптом. | |
|
|
|
|
|
|
|
для: Николай2357
(20.05.2009 в 13:40)
| | Спасибо огромное за помощь новичку. Всё сделал, всё работает!!! | |
|
|
|
|
|
|
|
для: Rolex
(20.05.2009 в 20:06)
| | Вот это уберите, не надо оно Вам:
<?
@unlink($_FILES['filename']['tmp_name']);
@chmod($root, 0777);
|
| |
|
|
|
|
|
|
|
для: Rolex
(19.05.2009 в 22:40)
| |
function file_get($URL){
if (!isset($URL))
return false;
$url_parse = parse_url($URL);
$this->SCHEMA_HTTP=$url_parse["scheme"];
//print_r($url_parse);
$this->HOST_HTTP=$url_parse["host"];
if (isset($url_parse["port"]))
$this->PORT_HTTP=$url_parse["port"];
$this->PATH_HTTP=$url_parse["path"];
if ($this->SCHEMA_HTTP==="proxy")
$this->URL_HTTP="http://".$this->HOST_HTTP.$this->PATH_HTTP;
else
$this->URL_HTTP=$this->PATH_HTTP;
$http_header="GET ".$this->URL_HTTP." HTTP/1.1\r\n";
$http_header.="Host: ".$this->HOST_HTTP."\r\n";
$http_header.="User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8\r\n";
$http_header.="Accept: */*\r\n";
$http_header.="Accept-Language: ru,en-us;q=0.7,en;q=0.3\r\n";
$http_header.="Keep-Alive: 600\r\n";
if ($this->SCHEMA_HTTP==="proxy")
$http_header.="Proxy-Connection: keep-alive\r\n\r\n";
else
$http_header.="Connection: keep-alive\r\n\r\n";
$res=false;
$errno=false;
$errstr=false;
if ($this->SCHEMA_HTTP==="proxy")
$res=fsockopen($this->HOST_PROXY, $this->PORT_PROXY, $errno, $errstr, 30);
else
$res=fsockopen($this->HOST_HTTP, $this->PORT_HTTP, $errno, $errstr, 30);
if ($res==false)
return false;
$length_header=strlen($http_header);
do {
$length_write=fwrite($res, $http_header, $length_header);
if ($length_write==false){
fclose($res);
return false;
}
}while($length_write!=$length_header);
$http_dest=false;
$pos=false;
$TEMP="";
$size_byte=1;
$flags=FALSE;
$length_doc;
preg_match_all("/[\S\s^]+\/(\S+\.(?:doc|xls))/", $this->URL_HTTP, $match);
preg_match_all("/[\S\s^\.]+\.([\S+^\"]+)/", $this->URL_HTTP, $match);
if ($match[1][0]=="doc")
header("Content-type: application/msword");
if ($match[1][0]=="xls")
header("Content-type: application/msexel");
do{
$TEMP=fread($res, $size_byte);
$info=stream_get_meta_data($res);
$_timeout=$info["timed_out"];
$http_dest.=$TEMP;
if (strpos($http_dest, "\r\n\r\n") && $flags==FALSE)
{
preg_match_all("/Content-Length: (\d+)/", $http_dest, $match);
$http_dest="";
$flags=TRUE;
$size_byte=$match[1][0];
$TEMP="";
}
if ($flags==TRUE)
echo $TEMP;
}while (!feof($res) && !$_timeout);
fclose($res);
return true;
}
|
Вот мой скрипт... таким образом я могу скачивать с определенного сайта файл.. | |
|
|
|