initial upload (js)