Fisierele trimise pentru upload pot fi preluate cu metoda
file() sau folosind proprietati dinamice (
$request->field_name).
$file = $request->file('photo');
//Or:
$file = $request->photo;
Verfiare daca e fisier pentru upload
Puteti verifica daca un fisier este trimis spre incarcare folosind metoda
hasFile().
In afara de a verifica daca fisierul este prezent, puteti sa verificati daca fisierul a fost trimis cu succes, folosind metoda
isValid()
if($request->hasFile('photo') && $request->file('photo')->isValid('photo')){
//
}
Instanta clasa UploadedFile
Metoda file() returneaza o instanta a clasei
Illuminate\Http\UploadedFile (care extinde clasa PHP
SplFileInfo) si furnizeaza o varietate de metode pentru a inspecta si interactiona cu fisierul.
- getMimeType() - Returneaza tipul mime al fisierului.
- getClientOriginalName() - Returneaza numele original al fisierului.
- getClientSize() - Returneaza marimea fisierului.
- getError() - Returneaza numarul de eroare de incarcare.
- getClientOriginalExtension() - Returneaza extensia originala a fisierului.
- guessExtension() - Returneaza extensia pe baza tipului mime.
- isValid() - Returneaza True daca fisierul a fost trimis cu succes.
- move($directory, $newName = null) - Muta fisirul la o locatie noua.
Pentru mai multe informatii despre aceste metode, vedeti:
Metode clasa UploadedFile
- Exemplu,
script Laravel simplu pentru incarcare imagini, cu setari pentru marimea maxima permisa a fisierului si validarea extensiei.
1. Creati un director "
uploads" in directorul "
public/".
2. Adaugati urmatorul cod intr-un fisier "
UploadController.php" (in directorul
app/Http/Controllers/):
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UploadController extends Controller {
protected $exts =['bmp', 'gif', 'jpe', 'jpeg', 'jpg', 'png']; //allowed file exttensions
protected $max_size =0.5; //allowed maximum file size in MB
protected $dir ='uploads'; //folder for uploaded files (in public/ directory)
protected $err =[]; //store errors
//Responds to post requests to /upload/photo
//receives the $request instance
//return string
public function uploadPhoto(Request $request){
//if file is sent
if($request->hasFile('photo')){
$file = $request->file('photo');
//if file successfully received
if($file->isValid()){
//validate the file
$ext = $file->guessExtension();
$size = $file->getClientSize();
if(!in_array($ext, $this->exts)) $this->err[] ='File extension: '. $ext .'<br>Allowed file exttensions: '. implode(', ', $this->exts);
if($size >$this->max_size*1024*1024) $this->err[] ='File extension: '. $size .'<br>Allowed maximum file size: '. $this->max_size .' MB';
//if no error, move the file
if(count($this->err)==0){
$fname = $file->getClientOriginalName();
$fmoved = $file->move(base_path() .'/public/'. $this->dir, $fname);
//if successfully moved in uploads directory
if($fmoved){
return 'File successfully uploaded:<br>'. $this->dir .'/'. $fname .'<br><img src="/'. $this->dir .'/'. $fname .'" alt="Photo" />';
}
else $this->err[] ='Unable to move the file to: '. $this->dir .'/'. $fname;
}
}
else $this->err[] ='The file not received';
}
else $this->err[] ='No photo file';
if(count($this->err) >0) return implode('<br>', $this->err);
}
}
3. Adaugati urmatorul cod intr-un fisier "
upload_form.blade.php" (in directorul "
resources/views/" ):
<h4>Upload Photo<h4>
<form method="post" action="/upload/photo" enctype="multipart/form-data">
{{ csrf_field() }}
File: <input type='file' name='photo'/><br>
<input type='submit' value='Upload'/>
</form>
4. Adaugati acest cod in fisierul "
routes/web.php":
//shows the upload form
Route::name('upload')->get('/upload', function(){
return view('upload_form');
});
//when the upload form is submited
Route::post('/upload/photo', 'UploadController@uploadPhoto');
5. Accesati urmatoarea adresa URL si selectati un fisier pentru incarcare:
//localhost:8000/upload
- Va afisa o pagina ca in aceasta imagine:
6. Apasati pe butonul Upload, va deschide o pagina cu imaginea incarcata, cum se vede in imaginea urmatoare:
O alta metoda de a salva fisierele incarcate pe server este sa folositi functia
store('folder') sau
storeAs('folder', 'file_name.ext').
Aceste metode stocheaza fisierele intr-un director specificat (folder) in directorul "
storage/app".
Metoda
store() va genera automat un ID unic pentru numele fisierului.
Metoda
storeAs() primeste un al doilea argument pentru numele fisierului.
- Exemplu:
//store the uploaded 'photo' file in storage/app/uploads/
//with a unique generated name
$path = $request->photo->store('uploads');
echo $path; // uploads/wAwyYljmEkjHaucksuHM2luPiyUMNApmKrt1L3LK.png
//with the original file name
$fname = $request->photo->getClientOriginalName();
$path = $request->photo->storeAs('uploads', $fname);
echo $path; // uploads/image.png
Un Test simplu in fiecare zi
HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Ce tag se foloseste pentru a adauga liste in elemente <ul> si <ol>?
<dt> <dd> <li><ul>
<li>http://coursesweb.net/html/</li>
<li>http://www.marplo.net/html/</li>
</ul>
Care valoare a proprietatii "display" seteaza elementul ca tip bloc si afiseaza un punct in fata?
block list-item inline-block.some_class {
display: list-item;
}
Care instructiune JavaScript transforma un obiect in sir JSON.
JSON.parse() JSON.stringify eval()var obj = {
"courses": ["php", "javascript", "ajax"]
};
var jsonstr = JSON.stringify(obj);
alert(jsonstr); // {"courses":["php","javascript","ajax"]}
Indicati clasa PHP folosita pentru a lucra cu elemente HTML si XML in PHP.
stdClass PDO DOMDocument$strhtml = '<body><div id="dv1">CoursesWeb.net</div></body>';
$dochtml = new DOMDocument();
$dochtml->loadHTML($strhtml);
$elm = $dochtml->getElementById("dv1");
echo $elm->nodeValue; // CoursesWeb.net
Indicati forma de Prezent Continuu a verbului "to live" (a trai /a locui)
lived living liveingI`m living here.
- Traiesc /Locuiesc aici.
Care este forma de Gerunziu (sau Participiu Prezent) a verbului "vivir" (a trai /a locui)?
viviĆ³ vivido viviendoEstoy viviendo aquĆ.
- Traiesc /Locuiesc aici.