0
제 양식에는 사용자가 XML 파일을 업로드 할 수있는 필드가 있습니다. 그러나 XML을 제출하기 전에 XML의 유효성을 검사해야합니다. 어떻게 이것을위한 검증 기능을 만들 수 있습니까?Yii2 : 제출하기 전에 파일의 내용을 확인하십시오.
내보기 :
...
<?= $form->field($model, 'upload_file')->fileInput(['accept' => 'text/xml']) ?>
...
내 모델 :
...
['upload_file', 'validateFile'],
...
public function validateFile($attribute, $params)
{
// TODO
}
...
내가 액세스 컨트롤러에서 XML 파일의 내용을 확인하지만, 파일이 제출 한 후이 유효성 검사가 이미 있습니다. .. 제출하기 전에 싶었어! 컨트롤러 Exemple :
if ($model->load(Yii::$app->request->post()) {
$file = UploadedFile::getInstance($model, 'upload_file');
$file = file_get_contents($file->tempName);
// xml of the upload_file
$xml = simplexml_load_string($file);
나는 유효성 검사 기능, 상단에이 코드를 전달하려는.
public function rules()
{
return [
[['uploaded_file'], 'file', 'skipOnEmpty' => false, 'extensions' => 'xml', 'mimeTypes' => 'text/xml, application/xml'],
];
}
내가 "ActiveForm을"의 "validationUrl"를 사용하려고하지만, 파일, 단지 텍스트를 전송하지 않습니다 : – Giest
프런트 엔드 사이트에서 유효성을 검사 할 수 없습니다. fileInput은 html 태그 만 필요하므로 validate가 필요한 경우 javascript 코드를 추가해야합니다. 그래서 Yii2 파일 입력을 사용하는 것이 좋습니다, 그것은 더 많은 기능을 가진 위젯을 향상 시켰습니다. https://github.com/kartik-v/yii2-widget-fileinput 여기에 있습니다. – dungphanxuan