gpt4 book ai didi

javascript - ng-flow 抛出 404 错误

转载 作者:行者123 更新时间:2023-12-03 06:01:47 26 4
gpt4 key购买 nike

我是 symfony REST fromework 的新手。在我们的项目中,我们使用 ng-upload 来上传图像。下面是负责此操作的代码段。

//HTML

<div style="float: left; margin-top: 7px; width: 220px;" permission-roles="['ROLE_UNIT_WRITE']" flow-init="{target: getFlowJsTarget(), testChunks:false, headers: getFlowJsHeaders()}" flow-file-added="!!{jpg:1,jpeg:1}[$file.getExtension()]" flow-files-submitted="$flow.upload()" flow-file-success="$file.msg = $message"></div>

//在 Controller (前端)

$scope.getFlowJsTarget = function() {
return Routing.generate('api_1_post_unit_photo', {id: $scope.unit.id});
};

$scope.getFlowJsHeaders = function() {
return {'X-XSRF-TOKEN': $cookies['XSRF-TOKEN']};
};

$scope.getUnitPhotoUrl = function(unit) {
return Routing.generate('api_1_get_unit_photo', {id: unit.id});
};

//后端代码 - UnitController.php

public function getUnitPhotoAction(Request $request, $id)
{
$unit = $this->getOr404($id);

$response = new Response();

if ($unit && $unit->getPhoto()) {
$response->headers->set('Cache-Control', 'private');
$response->headers->set('Content-type', 'image/jpeg');
$response->headers->set('X-Accel-Redirect', '/unit-photos/'.$unit->getPhoto());

} else {
$response->setStatusCode(404);
}

return $response;
}

public function getUnitPhotosAction(Request $request, $id)
{
$this->getOr404($id);

$flowJsHelper = $this->get('isf.flow_js_helper');

if ($flowJsHelper->checkChunk()) {
return new JsonResponse(null, 200);
} else {
return new JsonResponse(null, 404);
}
}
public function postUnitPhotoAction(Request $request, $id)
{
$unit = $this->getOr404($id);

$flowJsHelper = $this->get('isf.flow_js_helper');
$flowJsHelper->saveChunk();

$data = [
'success' => true,
];

$unitPhotoPath = $this->container->getParameter('kernel.root_dir').'/../web/uploads/unit-photos';
$fileName = $unit->getId().'.jpg';

if ($flowJsHelper->validateFile() && $flowJsHelper->save($unitPhotoPath.'/'.$fileName)) {
$data['finished'] = true;
$unit->setPhoto($fileName);
$this->getHandler()->persist($unit, false);
}

return new JsonResponse($data);
}

//FlowJSHelper.php

public function checkChunk()
{
return $this->filesystem->exists($this->getChunkPath($this->getParameter('flowChunkNumber')));
}

public function saveChunk()
{
/** @var \Symfony\Component\HttpFoundation\File\UploadedFile $file */
$file = $this->getRequest()->files->get('file');
$chunkFile = $this->getChunkPath();
$file->move(dirname($chunkFile), basename($chunkFile));
}

public function getChunkPath($index = null)
{
if (null === $index) {
$index = $this->getParameter('flowChunkNumber');
}

return $this->tempDir . DIRECTORY_SEPARATOR . $this->getParameter('flowIdentifier') . '_' . $index;
}

错误我越来越像 this .

ng-flow-standalone.js:1249 GET http://localhost:30080/api/v1/units/5732fa2dec045be8448b457d/photos?flowChu…st1jpg&flowFilename=test1.jpg&flowRelativePath=test1.jpg&flowTotalChunks=1 404 (Not Found)

最佳答案

看起来您正在发送 GET 请求。当您尝试上传图像时,您不应该发送 POST 请求吗?

您的服务器是否需要 GET 或 POST 请求?

尝试添加 testChunks:false 以及其他配置

flow-init="{testChunks:false}" 

这样 ng-flow 就不会发送 GET 请求。

关于javascript - ng-flow 抛出 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39722926/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com