Skip to content

Commit

Permalink
FileStack API
Browse files Browse the repository at this point in the history
  • Loading branch information
revanth1718 authored Aug 9, 2024
1 parent 0815fe5 commit abac0d5
Show file tree
Hide file tree
Showing 3 changed files with 158 additions and 0 deletions.
39 changes: 39 additions & 0 deletions New_APIs/Filestack API/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css">
<title>Filestack File Uploader</title>
</head>
<body>
<header>
<h1>Filestack File Uploader</h1>
</header>
<main>
<section>
<form id="upload-form">
<input type="file" id="fileInput" accept="image/*">
<button type="submit">Upload and Transform</button>
</form>
<div id="transform-options">
<label for="resizeWidth">Resize Width (px):</label>
<input type="number" id="resizeWidth" placeholder="e.g. 300">

<label for="resizeHeight">Resize Height (px):</label>
<input type="number" id="resizeHeight" placeholder="e.g. 300">

<label for="watermark">Watermark Text:</label>
<input type="text" id="watermark" placeholder="Enter watermark text">
</div>
<div id="status"></div>
<div id="transformed-image">
<h2>Transformed Image:</h2>
<img id="imagePreview" src="" alt="Your transformed image will appear here">
</div>
</section>
</main>
<script src="https://cdn.filestackcontent.com/filestack.js"></script>
<script src="index.js"></script>
</body>
</html>
43 changes: 43 additions & 0 deletions New_APIs/Filestack API/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
const client = filestack.init('YOUR_FILESTACK_API_KEY');

document.getElementById('upload-form').addEventListener('submit', async (e) => {
e.preventDefault();

const fileInput = document.getElementById('fileInput');
const resizeWidth = document.getElementById('resizeWidth').value;
const resizeHeight = document.getElementById('resizeHeight').value;
const watermark = document.getElementById('watermark').value;

if (fileInput.files.length === 0) {
document.getElementById('status').textContent = 'Please select a file to upload.';
return;
}

const file = fileInput.files[0];

try {
const uploadResponse = await client.upload(file);
let handle = uploadResponse.handle;

let url = `https://cdn.filestackcontent.com/${handle}`;

// Apply transformations if specified
let transformations = [];
if (resizeWidth || resizeHeight) {
transformations.push(`resize=w:${resizeWidth},h:${resizeHeight}`);
}
if (watermark) {
transformations.push(`watermark=text:${watermark}`);
}

if (transformations.length > 0) {
url += `?${transformations.join('&')}`;
}

document.getElementById('imagePreview').src = url;
document.getElementById('status').textContent = 'File uploaded and transformed successfully!';
} catch (error) {
console.error('Error:', error);
document.getElementById('status').textContent = 'An error occurred while uploading the file.';
}
});
76 changes: 76 additions & 0 deletions New_APIs/Filestack API/style.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
body {
font-family: 'Arial', sans-serif;
background: linear-gradient(135deg, #FF6F61, #FFB88C);
color: #333;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
min-height: 100vh;
margin: 0;
}

header {
text-align: center;
margin-bottom: 20px;
}

header h1 {
font-size: 2.5em;
color: #fff;
}

main {
background: #fff;
padding: 20px;
border-radius: 10px;
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
width: 400px;
}

form {
display: flex;
flex-direction: column;
gap: 10px;
}

input[type="file"],
input[type="text"],
input[type="number"] {
padding: 10px;
font-size: 1em;
border: 1px solid #ccc;
border-radius: 5px;
}

button {
padding: 10px;
font-size: 1em;
color: #fff;
background-color: #FF6F61;
border: none;
border-radius: 5px;
cursor: pointer;
transition: background-color 0.3s;
}

button:hover {
background-color: #FFB88C;
}

#status {
margin-top: 10px;
font-weight: bold;
color: #FF6F61;
}

#transformed-image {
margin-top: 20px;
text-align: center;
}

#transformed-image img {
max-width: 100%;
border-radius: 10px;
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

0 comments on commit abac0d5

Please sign in to comment.