prog90
Новичок
Здравствуйте,
а почему когда я использую в Joomla filesize от http-url адреса (http://example.com/image.jpg), то выводится stat failed for http. А если я тестирую просто в отдельном php файле (на том же localhost), то функция работает.
Просто мне нельзя закачивать файл, а надо сохранить только ссылку на него (возможность загрузки файла из интернета для фотоальбома)
Можно ли как-то обойти временное закачивание файла и проверить размер черз url
Вот тот код:
а почему когда я использую в Joomla filesize от http-url адреса (http://example.com/image.jpg), то выводится stat failed for http. А если я тестирую просто в отдельном php файле (на том же localhost), то функция работает.
Просто мне нельзя закачивать файл, а надо сохранить только ссылку на него (возможность загрузки файла из интернета для фотоальбома)
Можно ли как-то обойти временное закачивание файла и проверить размер черз url
Вот тот код:
PHP:
$file_url = JRequest::getVar('file_url', '', 'GET', 'string');
if (empty($file_url))
{
$photos = JRequest::get('Files');
}
else
{
$storage = JPATH_ROOT . DS . $config->getString('imagefolder') . DS . 'avatar';
$image = file_get_contents($file_url);
$path_info = pathinfo($file_url);
$filename = md5($file_url);
$ext = $path_info['extension'];
$image_path = $storage.DS.$filename.".".$ext;
$image_info = getimagesize($file_url);//$image_path);
$photos[0]['type'] = $image_info['mime'];
$photos[0]['tmp_name'] = $file_url;//$image_path;
$photos[0]['error'] = 'UPLOAD_ERR_OK';//$image_path;
}
file_put_contents("c:/text.txt", print_r($file_url, 1));
$albumId = JRequest::getVar( 'albumid' , '' , 'REQUEST' );
$album =& JTable::getInstance( 'Album' , 'CTable' );
$album->load( $albumId );
$handler = $this->_getHandler( $album );
foreach( $photos as $imageFile )
{
if( !$this->_validImage( $imageFile ) )
{
$this->_showUploadError( true , $this->getError() );
return;
}
if( $this->_imageLimitExceeded( filesize( $imageFile['tmp_name'] ) ) )
{
$this->_showUploadError( true , JText::_('CC IMAGE FILE SIZE EXCEEDED') );
return;
}