Jump to content
  • 0
riru

Laravel (hospedagem compartilhada) ajude por favor.

Question

Boa noite pessoa! Como vão?

Meu site foi feito em laravel e está rodando em hospedagem compartilhada, tudo funciona bem, menos as imagens quando são feitos upload (aparecem um x e não carrega imagem), 

O site grava as fotos corretamente no diretório public/uploads e carrega no diretório raiz a pasta uploads (onde não tem nenhuma imagem). Como faço para trocar a instrução de puxar a imagem em public/uploads ao invés da pasta uploads?

abs.

Share this post


Link to post
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Temos a pasta raiz de todo provedor compartilhado public_html (aqui despejo todos arquivos do site que contem index.php e etc.., o laravel faz upload para public_html/public/uploads e busca na raiz public_html/uploads, como faço para modificar a busca pelos arquivos ao invez da raiz /uploads para public/uploads? acho que ficaria mais fácil que mudar a pasta para upload.

 

estão assim:

 

    'disks' => [

        'local' => [
            'driver' => 'local',
            'root' => storage_path('app/public'),
        ],

        'public' => [
            'driver' => 'local',
            'root' => storage_path('app/public'),
            'visibility' => 'public',
        ],

        's3' => [
            'driver' => 's3',
            'key' => 'your-key',
            'secret' => 'your-secret',
            'region' => 'your-region',
            'bucket' => 'your-bucket',
        ],

    ],

];

Share this post


Link to post
Share on other sites
  • 0

As configurações de diretórios de upload são definidos em config/filesystems.php. Como está esse seu arquivo? Outra forma é fazer uma pesquisa com "upload" no diretório do Laravel e ver onde possivelmente estão configurações relacionadas.

Share this post


Link to post
Share on other sites
  • 0
Em 20/11/2018 at 10:18, navegantenarede disse:

As configurações de diretórios de upload são definidos em config/filesystems.php. Como está esse seu arquivo? Outra forma é fazer uma pesquisa com "upload" no diretório do Laravel e ver onde possivelmente estão configurações relacionadas.

 

Temos a pasta raiz de todo provedor compartilhado public_html (aqui despejo todos arquivos do site que contem index.php e etc.., o laravel faz upload para public_html/public/uploads e busca na raiz public_html/uploads, como faço para modificar a busca pelos arquivos ao invez da raiz /uploads para public/uploads? acho que ficaria mais fácil que mudar a pasta para upload.

 

estão assim:

 

    'disks' => [

        'local' => [
            'driver' => 'local',
            'root' => storage_path('app/public'),
        ],

        'public' => [
            'driver' => 'local',
            'root' => storage_path('app/public'),
            'visibility' => 'public',
        ],

        's3' => [
            'driver' => 's3',
            'key' => 'your-key',
            'secret' => 'your-secret',
            'region' => 'your-region',
            'bucket' => 'your-bucket',
        ],

    ],

];

Share this post


Link to post
Share on other sites
  • 0

De acordo com a documentação, provavelmente sua aplicação está usando o public_path() que retorna o caminho absoluto.

 

Procure a parte do código em que está definida a leitura dos arquivos pelo diretório, provavelmente está definido com public_path(), então você pode tentar alterar para o caminho com public_html.

 

 

Share this post


Link to post
Share on other sites
  • 0

esse é o código do /config/image.php

aonde seria a atualização para buscar a imagem na pasta raiz/public/uploads atualmente ele grava nessa pasta , mas busca na raiz/uploads.

 

<?php

return array(

    /*
    |--------------------------------------------------------------------------
    | Default Image Driver
    |--------------------------------------------------------------------------
    |
    | This option controls the default image "driver" used by Imagine library
    | to manipulate images.
    |
    | Supported: "gd", "imagick", "gmagick"
    |
    */
    'driver' => 'gd',
    
    /*
    |--------------------------------------------------------------------------
    | Memory limit
    |--------------------------------------------------------------------------
    |
    | When manipulating an image, the memory limit is increased to this value
    |
    */
    'memory_limit' => '128M',

    /*
    |--------------------------------------------------------------------------
    | Source directories
    |--------------------------------------------------------------------------
    |
    | A list a directories to look for images
    |
    */
    'src_dirs' => array(
        public_path()
    ),

    /*
    |--------------------------------------------------------------------------
    | Host
    |--------------------------------------------------------------------------
    |
    | The http host where the image are served. Used by the Image::url() method
    | to generate the right URL.
    |
    */
    'host' => '',

    /*
    |--------------------------------------------------------------------------
    | Pattern
    |--------------------------------------------------------------------------
    |
    | The pattern that is used to match routes that will be handled by the
    | ImageController. The {parameters} will be remplaced by the url parameters
    | pattern.
    |
    */
    'pattern' => '^(.*){parameters}\.(jpg|jpeg|png|gif|JPG|JPEG|PNG|GIF)$',

    /*
    |--------------------------------------------------------------------------
    | URL parameter
    |--------------------------------------------------------------------------
    |
    | The URL parameter that will be appended to your image filename containing
    | all the options for image manipulation. You have to put {options} where
    | you want options to be placed. Keep in mind that this parameter is used
    | in an url so all characters should be URL safe.
    |
    | Default: -image({options})
    |
    | Example: /uploads/photo-image(300x300-grayscale).jpg
    |
    */
    'url_parameter' => '-image({options})',

    /*
    |--------------------------------------------------------------------------
    | URL parameter separator
    |--------------------------------------------------------------------------
    |
    | The URL parameter separator is used to build the parameters string
    | that will replace {options} in url_parameter
    |
    | Default: -
    |
    | Example: /uploads/photo-image(300x300-grayscale).jpg
    |
    */
    'url_parameter_separator' => '-',

    /*
    |--------------------------------------------------------------------------
    | Serve image
    |--------------------------------------------------------------------------
    |
    | If true, a route will be added to catch image containing the
    | URL parameter above.
    |
    */
    'serve' => true,

    /*
    |--------------------------------------------------------------------------
    | Serve route
    |--------------------------------------------------------------------------
    |
    | If you want to restrict the route to a specific domain.
    |
    */
    'serve_domain' => null,

    /*
    |--------------------------------------------------------------------------
    | Serve route
    |--------------------------------------------------------------------------
    |
    | The route where image are served
    |
    */
    'serve_route' => '{image_pattern}',

    /*
    |--------------------------------------------------------------------------
    | Serve custom Filters only
    |--------------------------------------------------------------------------
    |
    | Restrict options in url to custom filters only. This prevent direct
    | manipulation of the image.
    |
    */
    'serve_custom_filters_only' => false,
    
    /*
    |--------------------------------------------------------------------------
    | Serve expires
    |--------------------------------------------------------------------------
    |
    | The expires headers that are sent when sending image.
    |
    */
    'serve_expires' => (3600*24*31),

    /*
    |--------------------------------------------------------------------------
    | Write image
    |--------------------------------------------------------------------------
    |
    | When serving an image, write the manipulated image in the same directory
    | as the original image so the next request will serve this static file
    |
    */
    'write_image' => false,

    /*
    |--------------------------------------------------------------------------
    | Write path
    |--------------------------------------------------------------------------
    |
    | By default, the manipulated images are saved in the same path as the
    | as the original image, you can override this path here
    |
    */
    'write_path' => null,
    
    /*
    |--------------------------------------------------------------------------
    | Proxy
    |--------------------------------------------------------------------------
    |
    | This enable or disable the proxy route
    |
    */
    'proxy' => false,
    
    /*
    |--------------------------------------------------------------------------
    | Proxy expires
    |--------------------------------------------------------------------------
    |
    | The expires headers that are sent when proxying image. Defaults to 
    | serve_expires
    |
    */
    'proxy_expires' => null,

    /*
    |--------------------------------------------------------------------------
    | Proxy route
    |--------------------------------------------------------------------------
    |
    | The route that will be used to serve proxied image
    |
    */
    'proxy_route' => '{image_proxy_pattern}',
    
    

    /*
    |--------------------------------------------------------------------------
    | Proxy route pattern
    |--------------------------------------------------------------------------
    |
    | The proxy route pattern that will be available as `image_proxy_pattern`.
    | If the value is null, the default image pattern will be used.
    |
    */
    'proxy_route_pattern' => null,

    /*
    |--------------------------------------------------------------------------
    | Proxy route domain
    |--------------------------------------------------------------------------
    |
    | If you wind to bind your route to a specific domain.
    |
    */
    'proxy_route_domain' => null,
    
    /*
    |--------------------------------------------------------------------------
    | Proxy filesystem
    |--------------------------------------------------------------------------
    |
    | The filesystem from which the file will be proxied
    |
    */
    'proxy_filesystem' => 'cloud',
    
    /*
    |--------------------------------------------------------------------------
    | Proxy temporary directory
    |--------------------------------------------------------------------------
    |
    | Write the manipulated image back to the file system
    |
    */
    'proxy_write_image' => true,
    
    /*
    |--------------------------------------------------------------------------
    | Proxy cache
    |--------------------------------------------------------------------------
    |
    | Cache the response of the proxy on the local filesystem. The proxy will be
    | cached using the laravel cache driver.
    |
    */
    'proxy_cache' => true,
    
    /*
    |--------------------------------------------------------------------------
    | Proxy cache filesystem
    |--------------------------------------------------------------------------
    |
    | If you want the proxy to cache files on a filesystem instead of using the
    | cache driver.
    |
    */
    'proxy_cache_filesystem' => null,
    
    /*
    |--------------------------------------------------------------------------
    | Proxy cache expiration
    |--------------------------------------------------------------------------
    |
    | The number of minuts that a proxied image can stay in cache. If the value
    | is -1, the image is cached forever.
    |
    */
    'proxy_cache_expiration' => 60*24,
    
    /*
    |--------------------------------------------------------------------------
    | Proxy temporary path
    |--------------------------------------------------------------------------
    |
    | The temporary path where the manipulated file are saved.
    |
    */
    'proxy_tmp_path' => sys_get_temp_dir(),

);
 

Share this post


Link to post
Share on other sites
  • 0
Em 22/11/2018 at 10:01, navegantenarede disse:

De acordo com a documentação, provavelmente sua aplicação está usando o public_path() que retorna o caminho absoluto.

 

Procure a parte do código em que está definida a leitura dos arquivos pelo diretório, provavelmente está definido com public_path(), então você pode tentar alterar para o caminho com public_html.

 

 

Oi Navegante!

aonde eu faria a alteração?

abs

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By joeythai
      Boa tarde pessoal,
       
      Tenho uma API para enviad dados via XML, eu salvo esse xml em um arquivo físico, os dados no arquivo físico me retornam 2 registros com todas as TAGs certinho, porém, quando eu pego a url e mando no browser, esses registros duplicam, alguém sabe o porque disso ? Estou utilizando laravel e a biblioteca DomDocument do PHP. O código esse abaixo:
       
      <code>
      <?php   namespace App\Http\Controllers\API\V1\Integracao;   use Illuminate\Http\Request; use Illuminate\Http\Response; use Illuminate\Support\Facades\Validator; use Illuminate\Validation\ValidationException; use App\Services\ToArray; use App\Exceptions\ApiException; use App\Http\Controllers\AppBaseController; use Illuminate\Support\Str; use App\Model\MySql\Site\IntegracaoModel as Integracao; use App\Model\MySql\Site\AuxFotosModel; use DOMDocument;   /** * * Classe criada para retornar informações dos imóveis do site da Sodré * e integrar com o Zap e Viva Real * */   class IntegracaoController extends AppBaseController { private $infos; private $integracao; private $urlImagem = "https://fotos.sodresantoro.com.br/fotos.imoveis/";   public function __construct(Integracao $integracao) { $this->integracao = $integracao; }   public function index() {   $dadosImoveis = $this->integracao->imoveis();   #versao do encoding xml $dom = new DOMDocument("1.0", "UTF-8");   #retirar os espacos em branco $dom->preserveWhiteSpace = false;   #gerar o codigo $dom->formatOutput = true;   #criando o nó principal (root) $root = $dom->createElement("ListingDataFeed"); $domAttrXMLNS = $dom->createAttribute("xmlns"); $domAttrXMLNS->value = 'http://www.vivareal.com/schemas/1.0/VRSync'; $domAttrXMLNSXSI = $dom->createAttribute("xmlns:xsi"); $domAttrXMLNSXSI->value = "http://www.w3.org/2001/XMLSchema-instance"; $domSchemaLocation = $dom->createAttribute("xsi:schemaLocation"); $domSchemaLocation->value = "http://www.vivareal.com/schemas/1.0/VRSync";   #nó filho $listings = $dom->createElement("Listings");   foreach ($dadosImoveis as $imoveis) {   $listing = $dom->createElement("Listing"); $details = $dom->createElement("Details"); $media = $dom->createElement("Media");   foreach ($imoveis->imagens as $key => $imagem) {   $this->infos['imagem'] = $this->urlImagem . $imagem->nome; $item = $dom->createElement("Item", $this->infos['imagem']);   #adiciona atributos nos elementos $domAttrImage = $dom->createAttribute("medium"); $domAttrImage->value = "image";   $domAttrCap = $dom->createAttribute("caption"); $domAttrCap->value = "img" . $key++;   $domAttrPrimary = $dom->createAttribute("primary"); $domAttrPrimary->value = "true"; $item->appendChild($domAttrCap); $item->appendChild($domAttrImage); $media->appendChild($item); } $this->infos['lance_inicial'] = $imoveis->vl_lanceinicial; $this->infos['title'] = $imoveis->title; $this->infos['descricao'] = $imoveis->descricao; $this->infos['lote_id'] = $imoveis->lote_id; $this->infos['endereco'] = $imoveis->Endereco; $this->infos['imagem'] = '';   //Faço o explode para poder fazer o envio(API não aceita casas decimais) //Para consultar: https://developers.grupozap.com/feeds/vrsync/elements/details/#list-price $preco = explode('.', $this->infos['lance_inicial']);   $listPrice = $dom->createElement("ListPrice", $preco[0]); $description = $dom->createElement("Description", htmlspecialchars(str_limit($this->infos['descricao'], 2000)));   $title = $dom->createElement("Title", $this->infos['title']); $listingID = $dom->createElement("ListingID", $this->infos['lote_id']); $transactionType = $dom->createElement("TransactionType", "For Sale"); $usageType = $dom->createElement("UsageType", "Residential"); $propertyType = $dom->createElement("PropertyType", "Residential / Apartment");   #adiciona os nós $details->appendChild($usageType); $details->appendChild($propertyType); $details->appendChild($description); $details->appendChild($listPrice);   $listing->appendChild($title); $listing->appendChild($listingID); $listing->appendChild($transactionType); $listing->appendChild($details); $listing->appendChild($media);   $listings->appendChild($listing); }   $root->appendChild($listings); $root->appendChild($domAttrXMLNS); $root->appendChild($domAttrXMLNSXSI); $root->appendChild($domSchemaLocation);   $dom->appendChild($root);   # Para salvar o arquivo, descomente a linha $dom->save("listagem-imoveis.xml");   #cabeçalho da página #header("Content-Type: text/xml"); # imprime o xml na tela print $dom->saveXML(); return response($dom->saveXML()); }   public function download() { return response()->file(public_path('listagem-imoveis.xml', 'Imóveis')); } } </code>
    • By samuelsennev
      Fala pessoal, beleza? 
      Então, estou tendo esse problema com o laravel 7. O que acontece é: tenho um formulário que manda alguns inputs para o método store(Request $request)--estrutura resource do laravel--, que por sua vez salva no banco de dados. Porém, a aplicação está caindo em uma página em branco antes de chegar no próprio método store. 
      O engraçado é que semana passada funcionava (inclusive salvava os registros no bd)... não fiz alterações que comprometem a rota. Simplesmente parou de funcionar. A aplicação me retorna uma página em branco.
       
      Vale lembrar:
      - A aplicação nem chega no controller;
      - Na primeira linha do método store(Request $request) tem um "dd($request);" para ver o que está chegando... ele nunca retorna a requisição na tela. Logo, presumo que o erro é na rota mesmo.
       
      A rota dentro de web.php: Route::get('/paginaPrincipal-5w2h', 'PT\PT_FiveTwoController@index')->name('index-5w'); Route::post('/salvando-5w2h', 'PT\PT_FiveTwoController@armazenar')->name('salvar-5w'); ------------------------------------------------------------------------------------------------------------------ O formulário da view: <form action="{{route('salvar-5w')}}" method="POST"> @csrf <div class="row"> <div class="col-lg-12S"> <div class="iq-card" > <div class="iq-card-header d-flex justify-content-between" style="border:none;"> <div class="row"> <div class="col-lg-6" style="padding-top: 2%; font-size: 18px;"> <label style="display: inline;">Nome: </label> </div> <div class="col-lg-6"> <input type="text" name="nome" class="form-control round" style="width: 200%;" placeholder="Seu nome..." > </div> </div> </div> </div> </div> </div> <button style="margin-left:90%; margin-bottom: 2%; padding:8px 16px ;" class="btn btn-primary">Salvar</button> </form> -----(A aplicação chega em index() tranquilamente, porém, em armazenar() não)----- O controller: namespace App\Http\Controllers\PT; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Auth; class PT_FiveTwoController extends Controller { public function index() { $user_id = Auth::id(); $data = DB::table('5w2h')->select()->where('user_id', $user_id)->get(); // dd($data); return view('tools.5w2h', ['data' => $data]); } public function armazenar(Request $request) { dd($request); } }
       
       
    • By Wallcrawler
      Olá pessoal tudo bem? Estou tentando fazer a cópia de uma imagem que está disponível na web e salvar em uma pasta no meu projeto. Essa imagem está sob protocolo SSL mas navegador consegue acessá-la normalmente. Mas o meu script php é bloqueado, e não entendo o porquê.
       
      Segue o código que estou usando:
      <?php //error_reporting(E_ALL ^ E_DEPRECATED); //ini_set('display_errors', 1); //die('Script travado!'); $start = microtime(true); set_time_limit(0); function save_image($inPath,$outPath) { //Download images from remote server $in = fopen($inPath, 'rb'); $out = fopen($outPath, 'wb'); while ($chunk = fread($in,8192)) { fwrite($out, $chunk, 8192); } fclose($in); fclose($out); } include_once ($_SERVER['DOCUMENT_ROOT'] . '/grpi/include/classes/Rpi.class.php'); include_once ($_SERVER['DOCUMENT_ROOT'] . '/grpi/include/functions.class.php'); $func = new FuncoesAuxiliares(); $rpi = new Rpi(); if(!isset($_GET['num_processo'])) { $rows = $rpi->Consulta('select num_processo, classe, especificacao from processos order by num_processo ASC limit 1'); } else { $rows = $rpi->Consulta("select num_processo, classe, especificacao from processos where num_processo > '" . $_GET['num_processo'] . "' order by num_processo ASC limit 1"); } $registros = 0; $arrayInsert = array(); $qtd_caracteres_total = 14; foreach ($rows as $rs) { //$rs['num_processo'] $zeros = ''; $qtd_char_processo = strlen($rs['num_processo']); //Fill zeros for($i=0; $i < ($qtd_caracteres_total - $qtd_char_processo); $i++) { $zeros .= '0'; } echo('BR5' . $zeros . $rs['num_processo'] . '<br>'); $url = 'http://www.tmdn.org/tmview/trademark/image/BR5' . $zeros . $rs['num_processo']; //Aqui tento acessar a imagem e salvar na pasta correspondente save_image($url, __DIR__ .'/logo/' . $rs['num_processo'] . '.jpg'); //copy('https://www.tmdn.org/tmview/trademark/image/BR5' . $zeros . $rs['num_processo'], __DIR__ .'/logo/' . $rs['num_processo'] . '.jpg'); $processo = $rs['num_processo']; $registros++; } $registros = number_format($registros, 0, ',', '.'); // Display Script End time $time_end = microtime(true); //dividing with 60 will give the execution time in minutes other wise seconds $execution_time = ($time_end - $start)/60; //execution time of the script echo '<b>Total Execution Time:</b> '. $execution_time .' Mins <hr><br><br>Registros: ' . $registros . '<br><br>'; echo("<a href='down_logo.php?num_processo=" . $processo ."' target='_self'>Próxima página</a><br><br>"); ?> O erro retornado é o seguinte:
       
      Warning: fopen(): SSL: Connection reset by peer in /home/storage/8/23/2c/euregistrogrpi/public_html/grpiv2/rpi/down_logo.php on line 10

      Warning: fopen(http://www.tmdn.org/tmview/trademark/image/BR500000825642590): failed to open stream: HTTP request failed! in /home/storage/8/23/2c/euregistrogrpi/public_html/grpiv2/rpi/down_logo.php on line 10

      Warning: fread() expects parameter 1 to be resource, boolean given in /home/storage/8/23/2c/euregistrogrpi/public_html/grpiv2/rpi/down_logo.php on line 12

      Warning: fclose() expects parameter 1 to be resource, boolean given in /home/storage/8/23/2c/euregistrogrpi/public_html/grpiv2/rpi/down_logo.php on line 16
       
      Só que se você tentar acessar o endereço no browser, diretamente, a imagem aparece:
       
      https://www.tmdn.org/tmview/trademark/image/BR500000825642590 
       
      Onde posso estar errando? Obrigado pela atenção de todos.
    • By Bruno Ferreira da Silva
      Estou utilizando laravel 5.8.
      Meu problema é o seguinte, estou realizando o login com usuário e senha. O sistema entra na condição e debuga corretamente o usuário logado. e no mesmo momento que eu altero a url para ..../dashboard, ele redireciona como se estivesse deslogando. mas na segunda tentativa isso não acontece, ele realiza o login normalmente. Ai isso se repete sempre que troca de usuário. 
       
      O controller da dashboard chama apenas a view e mais nada. 
      public function authenticate(Request $request) { $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials)) { dd(Auth::user()); return redirect()->intended('dashboard'); } }  
    • By Chris Martin
      Pessoal, estou com um problema com relacionamentos no laravel. (Inclusive pode ser até falta de atenção minha), mas quebrei a cabeça demais e não consegui; Tenho as tabelas 'arquiteto' e 'cliente' e um arquiteto tem vários clientes, só que não consegui fazer o relacionamento aparecer na tabela 'cliente' tenho o campo `arquiteto_id' que referencia o 'id' da tabela 'arquitetos', só que quando fiz a relação na model Arquiteto ela não está aparecendo class Arquiteto extends Model{ protected $fillable = [...]; public function clientes() { return $this->hasMany('App\Cliente'); } }  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.