Comments (5)
Backend must set the Location
header:
uploadx api,
google drive api
If there are difficulties in implementing this apis you can use ready-made solutions such as tusdotnet,
or sometimes it's easier to create your own custom uploaderClass
to support a non-standard upload api.
Chunk index custom uploaderClass example:
// uploaderXwithChunkIndex.ts
import { UploaderX } from 'ngx-uploadx';
export class UploaderXwithChunkIndex extends UploaderX {
chunkIndex = 1; // init
async sendFileContent(): Promise<number | undefined> {
const { end, body } = this.getChunk();
const headers = {
'Content-Type': 'application/octet-stream',
'Content-Range': `bytes ${this.offset}-${end - 1}/${this.size}`,
'Chunk-Index': this.chunkIndex
};
await this.request({ method: 'PUT', body, headers });
this.chunkIndex++; // increase on success
return this.getOffsetFromResponse();
}
}
add to options:
options: UploadxOptions = {
endpoint: `${environment.api}/files`,
...
chunkSize: 10 000 000,
uploaderClass: UploaderXwithChunkIndex
};
from ngx-uploadx.
Thanks for the above. This was helpful documentation. Have fixed backend and am returning Location as suggested but am still receiving error. See below execution plan and response.
- upload request sent to "https://localhost:44357/api/Uploads/Uploads". This works fine and hits controller.
- In by backend I have Location header set for PUT endpoint like so:
HttpContext.Response.Headers.Add( "Location", $"https://localhost:44357/api/Upload/SendChunk?uploadId={uploadId}");
- In my client I can see the response headers which contains Location, see below:
- Unfortunately, I am still getting initial error mentioned like so:
Can you see anything immediately obvious - bad url or http protocol must be HTTP. Thanks for any assistance.
from ngx-uploadx.
@kukhariev found the issue, issue with cors policy in my backend and needed the below header. thanks for the help.
from ngx-uploadx.
Yeah, I saw that, and we also need to remember to add Range
to the Access-Control-Allow-Headers
header for PUT requests.
Or context.HttpContext.Response.Headers.Add("Access-Control-Allow-Headers", "*")
,
or take it from browser access-control-request-headers
from ngx-uploadx.
cheers @kukhariev
from ngx-uploadx.
Related Issues (20)
- Uploading of same file simultaneously in two different tabs of same window is failing HOT 3
- Window is not defind with Server Side Rendering HOT 1
- Infinite retries upon 500 response HOT 4
- Feature request: maxChunkSize HOT 2
- Chunk timeout HOT 4
- Big files upload error with iOS HOT 3
- dynamic directive id HOT 1
- How is re-uploading resumed? HOT 2
- uploading the same file should be faster HOT 4
- why not use real filename for completed uploading HOT 2
- custom metadata is not working well HOT 2
- How to confirm before uploading via drop and drop HOT 2
- Support Angular 13 HOT 1
- How to append additional params to the request (service)? HOT 1
- throw error on using ngx-uploadx and uploadx-server with s3 HOT 1
- How to handle complete response HOT 2
- Drag and drop directory for upload
- Release date of next version HOT 1
- missing Metadata member HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ngx-uploadx.