파일 을 base 64 로 인 코딩 해서 AJAX 를 통 해 업로드 합 니 다.
이렇게 하면 비교적 좋 은 브 라 우 저 호환성 을 얻 을 수 있 지만 코드 의 양 이 비교적 클 것 입 니 다. 예 를 들 어 plplpload 와 같은 파일 업로드 플러그 인 을 사용 하 더 라 도.
어떻게 하면 유연 할 수 있 을 까? 일반적인 AJAX 가 폼 데 이 터 를 제출 하 는 것 처럼 파일 을 일반 폼 매개 변수 로 볼 수 있 었 으 면 좋 겠 다.
자 바스 크 립 트 의 FileReader 대상 을 이용해서 파일 을 base 64 로 인 코딩 해서 서버 에 전송 하면 되 잖 아 요 ~
손 을 쓰기 시작 하여 의식 이 풍족 하 다.
전단 에서 파일 을 base 64 인 코딩 하고 ajax 를 통 해 서버 로 전송 합 니 다:
<head>
<meta charset="UTF-8"></head><form onsubmit="return false;">
<input type="hidden" name="file_base64" id="file_base64">
<input type="file" id="fileup">
<input type="submit" value="submit" onclick="$.post('./uploader.php', $(this).parent().serialize());"></form><script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script><script>$(document).ready(function(){
$("#fileup").change(function(){
var v = $(this).val();
var reader = new FileReader();
reader.readAsDataURL(this.files[0]);
reader.onload = function(e){
console.log(e.target.result);
$('#file_base64').val(e.target.result);
};
});
});</script>
백 엔 드 에서 파일 데 이 터 를 디 코딩 하고 저장 합 니 다:
<?phpif (isset($_POST['file_base64'])){
$file_base64 = $_POST['file_base64'];
$file_base64 = preg_replace('/data:.*;base64,/i', '', $file_base64);
$file_base64 = base64_decode($file_base64);
file_put_contents('./file.save', $file_base64);}
javascript 의 FileReader 대상 주류 브 라 우 저 는 모두 지원 합 니 다. IE 10 이상 의 지원 은 작은 범위 에서 서 비 스 를 제공 할 때 이 비동기 로 파일 을 업로드 하 는 방식 을 고려 할 수 있 고 시간 도 절약 할 수 있 으 며 IE 시 리 즈 를 호 환 할 수 있다 고 생각 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.