비

바닐라 ajax 파일업로드 예제

· 2023-07-29 (토) 20:37:04 · 1874

 

이번에 지인이 이미지(jpg, png, gif) 업로드를 꼭 아작스로 해야 된다고 "발광"을 떨기에 만들어 준 소스입니다.

파일명은 202312252103.jpg 식으로 업로드시의 년월일시분초로 이름이 만들어집니다.

그냥 다 프론트에서 만들고 넘겨서 실제 액션문은 너무 소박하네요.

상단의 오디오는 데이터를 주고 받으면서 스트리밍이 끊기나 아니나를 확인하기 위해 넣은 것이니 삭제해도 됩니다.

오류나 예외처리는 없습니다.ㅜㅠ 본인들이 알아서 넣어주세요.

 

----------

 

main.php

[code]

<audio src="https://blog.kakaocdn.net/dn/PmTxy/btsk27xopkC/smpoMRN8VNc0Fim0V05g91/tfile.mp3" controls></audio>

 

<form id="uploadForm" enctype="multipart/form-data" method="post">
    <input type="file" name="upload_file" accept=".jpg,.png,.gif">
    <input type="hidden" name="upload_file_name">
</form>


<button type="button" id="uploadButton" style="cursor:pointer">업로드</button>

 

<div id="ajaxDiv"></div>

 

<script>
actionUrl = "./upload.php";
uploadDirectory = "./";
function todayData() {
    today = new Date();
    mdhmsToday = ["Month", "Date", "Hours", "Minutes", "Seconds"];
    ymdhmsToday = today.getFullYear();
    for (i of mdhmsToday) ymdhmsToday += ("0" + (today["get" + i]() + (i == "Month" ? 1 : 0))).slice(-2);
    return ymdhmsToday;
}
document.querySelector("#uploadForm").onchange = function() {
    fileName = todayData();
    fileExtension = this.querySelectorAll("input")[0].value.slice(-4).toLowerCase(); 
    imageSrc = this.querySelectorAll("input")[1].value = uploadDirectory + fileName + fileExtension;
}
function ajaxUpload() {
    uploadData = new FormData(document.querySelector("#uploadForm"));
    ajax = new XMLHttpRequest();
    ajax.open("post", actionUrl);
    ajax.onload = () => {
        document.querySelector("#ajaxDiv").innerHTML = "<img src='" + imageSrc + "'>";
    }
    ajax.send(uploadData);
}
document.querySelector("#uploadButton").onclick = ajaxUpload;
</script>

[/code]

 

----------

 

upload.php

[code]

<?php
move_uploaded_file($_FILES['upload_file']['tmp_name'], $_POST['upload_file_name']);

[/code]

|
댓글을 작성하시려면 로그인이 필요합니다.

개발자팁

5,403건

개발과 관련된 유용한 정보를 공유하세요. 질문은 QA에서 해주시기 바랍니다.

+
분류 제목 글쓴이 날짜 조회
node.js 23-08-13 조회 2,022
정규표현식 23-08-12 조회 1,706
node.js 23-08-11 조회 1,964
PHP 23-08-10 조회 2,153
node.js 23-08-09 조회 2,232
PHP 23-08-08 조회 2,288
node.js 23-08-07 조회 1,952
node.js 23-08-06 조회 2,219
PHP 23-08-05 조회 3,529
PHP 23-08-04 조회 2,465
JavaScript 23-08-03 조회 1,662
node.js 23-08-02 조회 1,556
node.js 23-08-01 조회 1,894
MySQL 23-07-31 조회 1,837
MySQL 23-07-30 조회 1,450
JavaScript 23-07-29 조회 1,875
웹서버 23-07-29 조회 5,147
PHP 23-07-28 조회 1,883
PHP 23-07-26 조회 2,169
기타 23-07-25 조회 1,630
jQuery 23-07-25 조회 3,125
23-07-25 조회 1,582
23-07-21 조회 1,965
23-07-21 조회 1,867
PHP 23-07-24 조회 2,001
MySQL 23-07-23 조회 1,792
PHP 23-07-23 조회 1,898
PHP 23-07-22 조회 3,042
PHP 23-07-22 조회 1,419
node.js 23-07-21 조회 5,271