Ich habe eine Methode, die ich zum Speichern von Dateien in der Sitzung und zum Hochladen in Verzeichnis verwenden, danach bekomme ich Daten aus der Sitzung und in der Datenbank speichern.Problem mit Laravel 4.2 Sitzung :: put-Methode
Ich habe Probleme mit dieser Methode. Manchmal funktioniert es korrekt, aber es gibt Fälle, in denen nicht alle Elemente in der Sitzung gespeichert wurden.
Ich benutze Laravel Session::put()
Methode, um separate Elemente in Session-Array zu speichern. Jedes Mal, wenn der Benutzer eine Eingabedateitypdatei im Formular ändert, wird diese Methode aufgerufen.
Zum Beispiel habe ich 3 Input-Typ-Dateien. Manchmal, wenn ich versuche, Dateien hochzuladen, speichert es das Feld front_passport
Feld und address_document
Feld, aber es speichert nicht back_passport
Feld.
Gibt es einen Fall mit Laravel-Sitzung und in irgendeiner Weise zu verwenden?
Mein Code ist folgende:
$(".app-file").on('change', function(){
var formData = new FormData();
formData.append($(this).attr('name'), this.files[0]);
formData.append('name', $(this).attr('name'));
$.ajax({
url: store_files,
type: "POST",
data: formData,
contentType: false,
processData: false,
success: function(response) {
if(response.errors) {
$.each(response.errors, function (k, v) {
$('[name=' + k + ']').parent().find('.file-name').html('');
$('<label class="error file_error">' + v + '</label>').insertAfter($('[name=' + k + ']').next().next());
});
}
},
error: function() {
$('.ajax-error').remove();
$('<span class="error col-md-6 ajax-error">There is some error! Please try again later!</span>').insertAfter($('.upload-section h3'));
}
});
});
public function storeFiles() {
$name = Input::get('name'); //input name
$input = Input::all();
$input_file = Input::file($name);
$current_time = time();
$allowed = array('jpeg','jpg','gif','png','pdf');
$file_name = $current_time . '_' . $input_file->getClientOriginalName();
$extension = File::extension($file_name);
if (!in_array($extension, $allowed)) {
return Response::json(array(
'success' => false,
'errors' => [$name => 'Please provide an image with one of the following extensions : jpg, gif, png or pdf']
));
}
$current_session = Session::get($name); //delete existing image from directory
$item_path = APPLICATIONS_DIR.'/'.$current_session;
if (file_exists($item_path) && !empty($current_session)) {
$removed_file = unlink($item_path);
}
if ($input_file) {
$input_file->move(APPLICATIONS_DIR, $file_name);
}
Session::put($name, $file_name);
return Response::json(array(
'files' => ['name' => $name,'session' => Session::all()]
));
}
Mein html ist:
<div class="form-group">
<label for="front_passport" class="col-md-2 label-file">{{translate("Front ID/Passport")}}<span class="required-label">*</span></label>
<div class="col-md-8 file-wrapper">
{{ Form::file('front_passport', ["class"=>"app-file"]) }}
<label for="front_passport" class="file-upload"><span>{{translate("Upload a File")}}</span></label>
<div class="file-name" data-input="front_passport"></div>
<label for="front_passport" generated="true" class="<?php echo $errors->has('front_passport') ? 'error' : '';?>">{{ $errors->first('front_passport') }}</label>
</div>
</div>
<div class="form-group">
<label for="back_passport" class="col-md-2 label-file">{{translate("Back ID/Passport")}}<span class="required-label">*</span></label>
<div class="col-md-8 file-wrapper">
{{ Form::file('back_passport', ["class"=>"app-file"]) }}
<label for="back_passport" class="file-upload"><span>{{translate("Upload a File")}}</span></label>
<div class="file-name" data-input="back_passport"></div>
<label for="back_passport" generated="true" class="<?php echo $errors->has('back_passport') ? 'error' : '';?>">{{ $errors->first('back_passport') }}</label>
</div>
</div>
<div class="form-group">
<label for="address_document" class="col-md-2 label-file">{{translate("Proof of Address")}}<span class="required-label">*</span></label>
<div class="col-md-8 file-wrapper">
{{ Form::file('address_document', ["class"=>"app-file"]) }}
<label for="address_document" class="file-upload"><span>{{translate("Upload a File")}}</span></label>
<div class="file-name" data-input="address_document"></div>
<label for="address_document" generated="true" class="<?php echo $errors->has('address_document') ? 'error' : '';?>">{{ $errors->first('address_document') }}</label>
</div>
</div>