웹 프론트엔드 JS 튜토리얼 노드 형태의 이미지 업로드 종합 분석

노드 형태의 이미지 업로드 종합 분석

Dec 06, 2016 am 11:08 AM
node

노드는 양식 이미지 업로드를 완전히 구문 분석하고, 다중 당사자는 파일 업로드라고도 알려진 콘텐츠 유형 multipart/form-data를 사용하여 HTTP 요청을 구문 분석합니다.

다중 설치

npm install multiparty
로그인 후 복사

html 코드

<form action="/api/uppic" method="post" >
<input type="file" name="pic" >
<input type="submit">
</form>
로그인 후 복사

노드 코드

app.route(&#39;/api/uppic&#39;).post(function(req,res){
var multiparty = require(&#39;multiparty&#39;);
var form = new multiparty.Form();//新建表单
//设置编辑
form.encoding = &#39;utf-8&#39;;
//设置图片存储路径
form.uploadDir = "Uploads/gaoxiao/";
form.keepExtensions = true; //保留后缀
form.maxFieldsSize = 2*1024*1024; //内存大小
form.maxFilesSize= 5*1024*1024;//文件字节大小限制,超出会报错err
//表单解析
form.parse(req, function(err,fields,files) {
//报错处理
if(err){
console.log(err);
var u={"error" :1,"message":&#39;请上传5M以图片&#39;};
res.end(JSON.stringify(u));
return false;
}
//获取路径
var oldpath=files.imgFile[0][&#39;path&#39;];
//文件后缀处理格式
if(oldpath.indexOf(&#39;.jpg&#39;)>=0){
var suffix=&#39;.jpg&#39;;
}else if(oldpath.indexOf(&#39;.png&#39;)>=0){
var suffix=&#39;.png&#39;;
}else if(oldpath.indexOf(&#39;.gif&#39;)>=0){
var suffix=&#39;.gif&#39;;
}else{
var u={"error" :1,"message":&#39;请上传正确格式&#39;};
res.end(JSON.stringify(u));
return false;
}
var url=&#39;Uploads/gaoxiao/&#39;+Date.now()+suffix;
var fs=require(&#39;fs&#39;);
//给图片修改名称
fs.renameSync(oldpath,url);
var u={ "error" : 0, "url" : &#39;/&#39;+url}
res.end(JSON.stringify(u));
});
});
로그인 후 복사

multiparty

multiparty.Form이 새 양식을 생성합니다**

인코딩: 사용됨 양식 필드 세트 인코딩을 입력합니다. 기본값은 utf8

maxFieldsSize: 모든 필드(파일 아님)가 할당할 수 있는 메모리 양을 바이트 단위로 제한합니다. 이 값을 초과하면 오류 이벤트가 발생합니다. 기본 크기는 2MB입니다.

maxFields: Limit, 필드 수를 구문 분석하기 전에 오류 이벤트가 발생합니다. 이 경우 파일은 필드로 간주됩니다. 기본값은 1000입니다.

maxFilesSize: 업로드 파일 크기 제한(관련 autoFiles가 true인 경우에만). 병합된 모든 파일에 허용되는 총 바이트 수를 제한합니다. 이 값을 초과하면 오류 이벤트가 발생합니다. 기본값은 무한대입니다.

autoFields: 필드 이벤트를 활성화하고 부품 이벤트를 비활성화하는 필드입니다. 필드 리스너가 추가되면 자동으로 true로 설정됩니다.

uploadDir: 관련 autoFiles가 true인 경우에만 해당됩니다. 업로드할 파일을 저장할 디렉터리입니다. 나중에 fs.rename()을 사용하여 이동할 수 있습니다. 기본값은 os.tmpDir()입니다.

form.parse(req, function(err,fields,files){})

- fields: 개체(업로드 이름 및 값), 해당 속성입니다. 이름의 필드 이름과 값은 필드 값의 배열입니다.

- 파일: 개체(업로드 이름 및 서버 파일 경로)이며, 필드 이름과 해당 속성 이름 값은 파일 개체의 배열입니다.

파일 내의 파일 객체 파일 - 다음 속성을 가진 객체:

- fieldName - 동일한 이름 - 이 파일의 필드 이름

- originalFilename - 파일 이름, 이 파일의 사용자에 대한 보고서

- 경로 - 디스크에 업로드된 파일의 절대 경로

- 헤더 - 전송된 HTTP 헤더입니다. 파일

- 크기 - 파일 크기(바이트)

노드 형식 구문 분석(다자간) API 주소: https://www.npmjs.com/package/multiparty


본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

nvm에서 노드를 삭제하는 방법 nvm에서 노드를 삭제하는 방법 Dec 29, 2022 am 10:07 AM

nvm을 사용하여 노드를 삭제하는 방법: 1. "nvm-setup.zip"을 다운로드하여 C 드라이브에 설치합니다. 2. "nvm -v" 명령을 통해 환경 변수를 구성하고 버전 번호를 확인합니다. install" 명령 노드 설치; 4. "nvm uninstall" 명령을 통해 설치된 노드를 삭제합니다.

Express를 사용하여 노드 프로젝트에서 파일 업로드를 처리하는 방법 Express를 사용하여 노드 프로젝트에서 파일 업로드를 처리하는 방법 Mar 28, 2023 pm 07:28 PM

파일 업로드를 처리하는 방법은 무엇입니까? 다음 글에서는 Express를 사용하여 노드 프로젝트에서 파일 업로드를 처리하는 방법을 소개하겠습니다. 도움이 되길 바랍니다.

Node 서비스의 Docker 미러링을 수행하는 방법은 무엇입니까? 극한 최적화에 대한 자세한 설명 Node 서비스의 Docker 미러링을 수행하는 방법은 무엇입니까? 극한 최적화에 대한 자세한 설명 Oct 19, 2022 pm 07:38 PM

이 기간 동안 저는 Tencent 문서의 모든 카테고리에 공통되는 HTML 동적 서비스를 개발 중입니다. 다양한 카테고리에 대한 액세스 생성 및 배포를 촉진하고 클라우드로 이동하는 추세에 부응하기 위해. Docker를 사용하여 서비스 콘텐츠를 수정하고 제품 버전을 균일하게 관리합니다. 이 글에서는 제가 Docker를 서비스하면서 쌓은 최적화 경험을 여러분의 참고용으로 공유하겠습니다.

Node의 프로세스 관리 도구 'pm2”에 대한 심층 분석 Node의 프로세스 관리 도구 'pm2”에 대한 심층 분석 Apr 03, 2023 pm 06:02 PM

이 기사에서는 Node의 프로세스 관리 도구인 "pm2"를 공유하고 pm2가 필요한 이유, pm2 설치 및 사용 방법에 대해 설명합니다. 모두에게 도움이 되기를 바랍니다!

PI 노드 교육 : PI 노드 란 무엇입니까? Pi 노드를 설치하고 설정하는 방법은 무엇입니까? PI 노드 교육 : PI 노드 란 무엇입니까? Pi 노드를 설치하고 설정하는 방법은 무엇입니까? Mar 05, 2025 pm 05:57 PM

Pinetwork 노드에 대한 자세한 설명 및 설치 안내서이 기사에서는 Pinetwork Ecosystem을 자세히 소개합니다. Pi 노드, Pinetwork 생태계의 주요 역할을 수행하고 설치 및 구성을위한 전체 단계를 제공합니다. Pinetwork 블록 체인 테스트 네트워크가 출시 된 후, PI 노드는 다가오는 주요 네트워크 릴리스를 준비하여 테스트에 적극적으로 참여하는 많은 개척자들의 중요한 부분이되었습니다. 아직 Pinetwork를 모른다면 Picoin이 무엇인지 참조하십시오. 리스팅 가격은 얼마입니까? PI 사용, 광업 및 보안 분석. Pinetwork 란 무엇입니까? Pinetwork 프로젝트는 2019 년에 시작되었으며 독점적 인 Cryptocurrency Pi Coin을 소유하고 있습니다. 이 프로젝트는 모든 사람이 참여할 수있는 사람을 만드는 것을 목표로합니다.

pkg를 사용하여 Node.js 프로젝트를 실행 파일로 패키징하는 방법에 대해 이야기해 보겠습니다. pkg를 사용하여 Node.js 프로젝트를 실행 파일로 패키징하는 방법에 대해 이야기해 보겠습니다. Dec 02, 2022 pm 09:06 PM

nodejs 실행 파일을 pkg로 패키징하는 방법은 무엇입니까? 다음 기사에서는 pkg를 사용하여 Node 프로젝트를 실행 파일로 패키징하는 방법을 소개합니다. 도움이 되기를 바랍니다.

npm node gyp가 실패하는 경우 수행할 작업 npm node gyp가 실패하는 경우 수행할 작업 Dec 29, 2022 pm 02:42 PM

"node-gyp.js"와 "Node.js"의 버전이 일치하지 않아 npm node gyp가 실패했습니다. 해결 방법: 1. "npm 캐시 clean -f"를 통해 노드 캐시를 지웁니다. 2. "npm install - g n" n 모듈을 설치합니다. 3. "n v12.21.0" 명령을 통해 "node v12.21.0" 버전을 설치합니다.

싱글 사인온(SSO) 시스템이란 무엇입니까? nodejs를 사용하여 구현하는 방법은 무엇입니까? 싱글 사인온(SSO) 시스템이란 무엇입니까? nodejs를 사용하여 구현하는 방법은 무엇입니까? Feb 24, 2023 pm 07:33 PM

싱글 사인온(SSO) 시스템이란 무엇입니까? nodejs를 사용하여 구현하는 방법은 무엇입니까? 다음 글에서는 Node를 사용하여 Single Sign-On 시스템을 구현하는 방법을 소개하겠습니다. 도움이 되길 바랍니다.

See all articles